精华内容
下载资源
问答
  • 本文内容词语撤销 / 撤消撤销恢复 / 撤销重做,撤消恢复 / 撤消重做账号 / 帐号,账户 / 帐户登录 / 登陆标点符号句号省略号额外说明 词语 下面列举出来的一些词语,有的我写的是 “推荐”,指两者都是正确的,但更...

    经常有小伙伴跟我撕到底一些常用同音的词语应该使用哪个的问题。于是我将一些常用的软件界面中用错的文案整理出来,为自己和其他开发者提供我 已经整理的结论可以溯源的资料


    词语

    下面列举出来的一些词语,有的我写的是 “推荐”,指两者都是正确的,但更应该使用 “推荐” 中的词语;而有的我写的是 “正确”,指只有这一个才是正确的,而其他写法是错误的。

    无论哪一种,都说明了理由和可溯源的资料。

    撤销 / 撤消

    • 推荐:在软件界面中推荐使用 “撤销”。应该逐渐淘汰“撤消”的使用。
    • 实际:国产软件主要使用“撤销”,而国外软件的中文版本两者都有使用。

    看《现代汉语词典》:

    第五、六、七版:

    【撤销】chèxiāo [动] 取消:~处分|~职务。也作撤消。
    【撤消】chèxiāo 同“撤销”。

    第三版:

    【撤销】chèxiāo [动] 撤除;取消 |> ~原判决 | ~多余的机构。☞ 不宜写作“撤消”。
    【撤消】chèxiāo 现在一般写作“撤销”。

    可见,“撤消”已经被淘汰,现全部应该使用“撤销”。

    那么实际中大家是如何使用的呢?

    Windows 系统和 Office 套件使用的是“撤消”:

    Windows 文件资源管理器

    Office 套件

    撤销恢复 / 撤销重做,撤消恢复 / 撤消重做

    • 正确:恢复。

    撤销:Undo。恢复:Redo。重做:Repeat。

    有些软件会出现此错误,估计跟 Office 的使用有关。

    在正常情况下,Office 的左上角有一对按钮:“撤消” 和 “重做”。但是,“重做” 的意思真的是 “重复上一步操作”。当你点了 “撤消” 之后,这个 “重做” 按钮会消失,变成 “恢复” 按钮,意思是将刚刚 “撤消” 的操作 “恢复” 回来。

    因此,如果只是在 Office 软件里看了一眼就把文案抄过来了,那就会出现 “撤消重做” 这样的误用;实际上应该是 “撤销恢复”。

    Office 套件

    账号 / 帐号,账户 / 帐户

    • 推荐:在软件 zhànghào / zhànghù 界面中推荐使用 “账号” 和 “账户”。
    • 实际:各大软件平分秋色,都有使用。

    第一批异形词整理表 中对于 “账” 和 “帐” 的用法有一项相关的说明,明确 “账本”(zhàngběn)一词是普通话书面语中推荐的使用词形,而 “帐本” 是 “账本” 异形词。

    其对于 “账” 和 “帐” 的解释如下:

    “账”是“帐”的分化字。古人常把账目记于布帛上悬挂起来以利保存,故称日用的账目为“帐”。后来为了与帷帐分开,另造形声字“账”,表示与钱财有关。“账”“帐”并存并用后,形成了几十组异形词。《简化字总表》、《现代汉语通用字表》中“账”“帐”均收,可见主张分化。二字分工如下:“账”用于货币和货物出入的记载、债务等,如“账本、报账、借账、还账”等;“帐”专表用布、纱、绸子等制成的遮蔽物,如“蚊帐、帐篷、青纱帐(比喻用法)”等。

    从主张分化的目的来看,其更推荐在表示“货币和货物出入的记载、债务”时使用“账”,而在表示“布、纱、绸子等制成的遮蔽物”时使用“帐”。那么软件界面中应该使用哪一个呢?

    对于“支付宝”/“京东”/“淘宝”/“微信钱包”/各类银行这些一看就跟钱相关的应用里面,很明显推荐使用“账户”。另外一些如论坛 zhànghào,QQ zhànghào 等没有明前与钱相关的应用,其通常也包含一些虚拟的服务行为记录、以及与其他用户相关的虚拟交易方式(例如论坛币、Q 币),因此也推荐使用“账户”。

    然而还有一些与这些虚拟交易也没有关系的,非营利组织的或者完全个人的 zhànghào,应该使用什么呢?这些 zhànghù 通常只做一些密码记录、行为记录、用户个人设置个人偏好存储等。从含义上讲,这些信息与“账”描述中的“货物出入的记载”这一句是相关的,而与“帐”中的“布、纱、绸子等制成的遮蔽物”不相关。因此,即便是这些与钱不直接相关的用户 zhànghù 或者 zhànghào 也更加推荐使用 “账号” 和 “账户”。

    那么实际中大家是如何使用的呢?

    在我们刚刚参考的维基文库中,其使用的就是 “账号”:

    维基文库

    京东/1号店/支付宝的登录页面使用了 “账号”(淘宝使用了“会员名”来规避了这种争议词的使用):

    京东

    淘宝使用了“会员名”来规避了这种争议词的使用。

    QQ/微信/网易中使用的是 “帐号”:

    QQ 登录页面

    Windows 系统采用了 “帐户” 一词。不过其中文版对此异形词做了很友好的适配,无论你输入哪一个词,最终都可以搜到你想要的 zhànghù:

    Windows 系统设置中的帐户

    你以为微软统一使用 “帐户” 吗?实际上可以看看下面这个页面,两个词都有使用。微软一定很纠结。

    纠结的微软

    登录 / 登陆

    • 正确:“登录” 才是正确用法。“登陆”根本就不是计算机术语。
    • 实际:主流软、大公司基本都正确使用了 “登录”,但其他网站就不好说了各种乱用。

    标点符号

    句号

    • 推荐:句子的结尾必须有句号或者可以承担句号职责的标点;而短语后面则不应该加句号或同类标点。
    • 实际:很多不成熟的软件会在句子结尾不带任何句号或同类标点。

    为什么连句号也要拿出来说呢?

    省略号

    从早期的界面设计中一直延续下来一个约定:

    如果某个按钮有后续操作,那么这个按钮的名称后面需要带上省略号 “…”。

    注意,这是半个省略号 “…”,而不是三个点 “…”。无论中文还是英文都如此。 正在搜寻资料确认到底是什么。

    后续操作指的是“需要提供额外的信息”。例如“保存”直接存成文件,而“另存为”需要提供一个新的文件名。因此“保存”没有省略号而“另存为”则有省略号。

    这个约定在微软的 Windows 系统中和苹果的 macOS 系统中原本一直都有执行下去,就像下面这样:

    Windows 系统

    Mac 系统

    直到后来发现,如果继续执行这项约定,那么整个界面中将充斥着省略号,非常影响美观。

    于是后来就只在菜单中保留这项约定,其他常显界面中就去掉了省略号:

    Windows 文件资源管理器

    Windows 设置

    Visual Studio 中的菜单项

    额外说明

    可能需要解释一下异形词,来自维基文库:

    异形词(variant forms of the same word)

    普通话书面语中并存并用的同音(本规范中指声、韵、调完全相同)、同义(本规范中指理性意义、色彩意义和语法意义完全相同)而书写形式不同的词语。

    而异体字:

    异体字(variant forms of a Chinese character)

    与规定的正体字同音、同义而写法不同的字。本规范中专指被《第一批异体字整理表》淘汰的异体字。

    对于异形词,其不同的写法需要用在不同的场景中;对于异体字,则需要逐渐淘汰使用。


    参考资料


    我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

    如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

    知识共享许可协议

    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 这里只列举几个简要的流程,仅包括拼报文,发送报文,接收报文,解析报文,其余整体架构以及后续处理等内容省略。 2. 初步设计 创建一个银行交互类 BankOpt,包括四个函数: int setMsg(); //拼报文int sendMsg(); /...

    1. 业务说明

    为了便于说明,举一个简单的例子。假设现在有一个项目需要建立一个和银行交互的平台,目前只接入工商银行,后续接入其他银行,每个银行的业务都有差异,报文格式可能也不一致。

    这里只列举几个简要的流程,仅包括拼报文,发送报文,接收报文,解析报文,其余整体架构以及后续处理等内容省略。

    2. 初步设计

    创建一个银行交互类 BankOpt,包括四个函数:

    int setMsg();       //拼报文int sendMsg();      //发送报文int getMsg();       //接收报文int parseMsg();     //解析报文
    

    然后在每个函数中通过if-else来判断具体是哪一个银行,之后进行相应的处理。

    这种设计在刚开发的时候非常方便,代码量少,但是如果后续需要接入另外一个银行时就需要改动BankOpt类,不符合设计模式中的开放-封闭原则。而且单个函数中将来可能会有大量的if-else,使代码可读性下降。

    3. 简单工厂模式

    通过简单工厂模式,我们可以创建一个专门的工厂类用于实例化一个合适的银行交互类,只需要这个银行交互类具有共同的接口即可。

    首先,为了实现更好的复用,把各个银行交互类中相同的部分抽象出来,形成一个银行交互基类,代码如下:

    class BaseBank{public:    virtual int setMsg() = 0;    virtual int sendMsg() = 0;    virtual int getMsg() = 0;    virtual int parseMsg() = 0;};
    

    这里仅仅声明了四个纯虚函数,具体的业务逻辑在子类中实现。

    创建两个银行交互子类GSBank(工商银行)和RMBank(人民银行),继承BaseBank,实现四个虚函数。

    • 创建一个工厂类

      class BankFactory{public: BaseBank* createBank(const string& bank_name) { if (bank_name == “GSBank”) return new GSBank(); else if (bank_name == “RMBank”) return new RMBank(); }};

    工厂类中有一个createBank函数,用于根据银行编码创建相应的实例并返回其基类指针,这样我们只需要通过基类指针调用相关函数即可。

    • 在主流程中调用

      BankFactory bf;BaseBank* t = (BaseBank*)bf.createBank(bank_name);if (t == NULL) { cout << “银行编码错误!” << endl; return 2;}t->setMsg();t->sendMsg();t->getMsg();t->parseMsg();

    • 优缺点
      利用简单工厂模式,当我们后续接入另外的银行时,只需要添加具体的银行交互类,实现业务函数,然后在工厂类的createBank函数中添加一个else if子句。相对于原来的设计已经改进很多了,但是仍然需要修改原来的工厂类的代码,没有彻底实现解耦。

    4. 反射

    反射在java的一些框架中使用的比较多,而且用起来非常方便。C++本身并不支持,但是我们可以模拟一些简单的特性。

    我们需要一种能够根据字符串动态获取对应的银行交互类的实例的方法。这样在工厂类的createBank方法中就可以根据字符串直接获取对应银行交互类的实例,而不需要再每次通过新增else if 子句来新增一个银行接口。

    也就是说,利用反射和简单工厂模式,下次当我们需要新增一个银行接口的时候只需要新增一个银行交互类即可,不需要修改原来的任何代码,实现了业务上的解耦。

    • 如何在C++中实现反射
      1. 需要一个全局的map用于存储类的信息以及创建实例的函数
      2. 需要反射的类需要提供一个用于创建自身实例的函数
      3. 利用类的静态变量在程序启动的时候会进行初始化来在全局map中将类名及创建实例的函数存入map中

    相关代码如下:

    typedef void* (*register_func)(); class Class{public:static void* newInstance(const string& class_name) {map<string, register_func>::iterator it = m_register.find(class_name);    if (it == m_register.end())        return NULL;    else        return it->second();}static void registerClass(const string& class_name, register_func func) {    m_register[class_name] = func;} private:    /* key is class name and value is function to create instance of class */    static map<string, register_func> m_register;};  class Register{public:    Register(const string& class_name, register_func func) {        Class::registerClass(class_name, func);    }}; #define REGISTER_CLASS(class_name) \    class class_name##Register { \    public: \        static void* newInstance() { \            return new class_name; \        } \    private: \        static const Register reg; \    };\const Register class_name##Register::reg(#class_name,class_name##Register::newInstance);
    

    还需要修改工厂类的createBank函数,利用Class的newInstance函数来创建实例:

    BaseBank* createBank(const string& bank_name) {        return (BaseBank*)Class::newInstance(bank_name);}
    

    Class类中的m_register变量是static类型的map,相当于全局变量。

    newInstance函数,传入类名,查找map,调用回调函数,返回一个对应类的实例。
    registerClass函数传入类名和用于创建实例的回调函数并将信息存入全局的map中。

    Register类只有一个构造函数,会调用Class的registerClass函数完成注册。

    利用宏定义,在每一个需要反射的类后面额外增加一个类,其中有一个Register类型的static const变量,这样在程序启动的时候就会完成初始化调用Register类的构造函数,完成注册。

    之后只需要在需要反射的类,例如在工商银行交互类 GSBank 后面加上一条宏定义:
    REGISTER_CLASS(GSBank) 就可以通过工厂类传入”GSBank”字符串获得工商银行交互类的实例。

    5. 测试

    工商银行

    人民银行

    通过传入不同的银行编码,会实例化不同的银行交互类,并且执行其对应的函数。

    如果需要增加新的银行接口,例如农业银行,只需要新增一个NYBank类,实现具体的业务逻辑,不需要改动原来的任何代码,传入NYBank字符串,就会执行农业银行相关的处理流程。

    展开全文
  • JDK5: 自动拆箱装箱 泛型 ...3.枚举类的第一行必须是枚举项,最后一个枚举项后的分号可以省略,但如果枚举项后还有内容则不能省略,建议不省略; 4.枚举类可以有构造器,但必须用private修饰,默认构造器

    JDK5:

    自动拆箱和装箱

    泛型

    增强for循环

    静态导入

    可变参数

    枚举 :

    是指将变量的值一一列出来,变量的值只限于列举出来的位的范围内;
    
    通过enum来实现枚举类;
    
    public enum 类名{
    
    	枚举项1,2,3....
    	
    }
    

    注意事项:

    1.定义枚举类要用关键字enum;
    
    2.所有枚举类都是enum的子类;
    
    3.枚举类的第一行必须是枚举项,最后一个枚举项后的分号可以省略,但如果枚举项后还有内容则不能省略,建议不省略;
    
    4.枚举类可以有构造器,但必须用private修饰,默认构造器也是用private修饰,枚举项调用构造器的带参方法:枚举项(参数);
    
    5.枚举类也可以有抽象方法,但必须由枚举项重写该方法;
    
    6.枚举项可用于switch中;
    

    枚举类中的几个常见方法:

    1.int CompareTo(~):类似String中的CompareTo;
    
    2.Strign name;
    
    3.int Ordinal:获取枚举项在枚举类中的序数;
    
    4.toString();
    
    5.ValueOf(Class<t>,String name):获取枚举项在字节码文件中的属性;
    
    6.values():返回枚举项数组,用于遍历;
    

    JDK7:

    二进制字面量

    数字字面量可以出现下划线

    switch语句可以用字符串

    异常的多个catch合并

    try-with-resource语句

    格式:

    try(必须是java.lang.AutoCloseable的子类对象){........(把需要关闭的资源放在其中)}
    
    几乎所有的流对象都是AutoCloseable的子类;
    

    JDK8:

    允许接口中有默认方法和静态方法

    lambda表达式

    函数式接口

    内置函数式接口

    Streams和

    展开全文
  • 1:insertBefor(),找到一个节点,将它插入到另一个节点的前面(当内容结构不修改时,htmlcss代码不发生变化,省略不写,只改变js中的代码) &lt;!DOCTYPE html&gt; &lt;html lang="en"&...

    在使用JQuery中,对元素节点的操作非常简单明了,省去了一些不必要的步骤,在这里列举一些比较常用的节点操作
    1:insertBefor(),找到一个节点,将它插入到另一个节点的前面(当内容结构不修改时,html和css代码不发生变化,省略不写,只改变js中的代码)

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src = "../js/jquery-1.10.1.min.js"></script>
    	<script>
    	</script>
    </head>
    <body>
    	<div>我是div标签</div>
    	<p>我是p标签</p>
    	<en>我是em标签</em>
    </body>
    </html>
    

    原效果图
    在这里插入图片描述

    当使用insertBefor()修改时

    <script>
    		$(function(){
    			$("p").insertBefore("div");//找到p标签  将p标签插入到div标签的前面
    		})
    	</script>
    

    改变后的效果
    在这里插入图片描述
    p标签插入到div前面
    2:insertAfter();找到一个标签,将这个标签插入到另一个标签的后面

    <script>
    		$(function(){
    			$("div").insertAfter("em");//找到div标签 将div标签插入到em标签后面
    		})
    	</script>
    

    改变后的效果
    在这里插入图片描述
    3:remove();找到一个标签,将它删除

    <script>
    		$(function(){
    			$("div").remove();//找到div标签  将他删除
    		})
    	</script>
    

    效果图
    在这里插入图片描述
    4:before();一个标签的前面是找到的标签

    <script>
    		$(function(){
    			$("div").before($("em"));
    		})
    	</script>
    

    改变后的效果图
    在这里插入图片描述
    before 和insertBefore的区别:
    在实现效果上没有什么不同,但当在后面跟链式结构的时候,改变的主体不同

    展开全文
  • (6)省略法:两种语言由于存在差异,表达时不可能总是对等,经常可以省略一些词句子成分,如英语中的冠词汉语里没有,译时可以省略。 最后一定要核对原文是否准确、通顺,还要注意关键词的采分点。 希望大家考试...
  • 精通javascript

    2012-12-05 18:17:35
    • 13.3.htm DHTML对象模型方法显示修改网页文字内容 • 13.4.htm DHTML对象模型方法新增删除表格行内容 • 13.5.htm W3C对象模型方法显示修改网页内容 • 13.6.htm W3C对象...
  • 列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... ...
  • 这两种信息交换协议的具体内容和实现机制在IS0/IEC78l6-3IS0/IEC7816-3A3标准中作了规定;而COS所应完成的管理控制的基中功能则是在 ISO/IEC78l6-4标准中作出规定的。在该国际标准中,还对智能卡的数据结构...
  • 精通JavaScript

    2009-06-27 20:06:12
    • 13.3.htm DHTML对象模型方法显示修改网页文字内容 • 13.4.htm DHTML对象模型方法新增删除表格行内容 • 13.5.htm W3C对象模型方法显示修改网页内容 • 13.6.htm W3C对象...
  • 2018年6月迭代计划

    2021-01-06 16:09:00
    <ul><li>[x] 为后台栏目树中的首页外链栏目添加图标 PR #756</li><li>[x] 生成文件后缀为index.html时应该省略文件名 #853</li><li>[x] 设置了独立api地址,没同步管理员cookie,导致授权失败 #873...
  • 包括160个菜单功能100个左右自定义函数,集160个工具于一身,但体积小于15MB。当安装集成工具箱后,如果您使用Excel 2003,则将产生【工具箱】菜单,包括160多个子菜单;如果您使用Excel 2007或者2010,将产生...
  • 【快速选定数据】 可瞬间选中与用户指定内容相同的当前工作表中所有存储格,方便选定、清除内容或其他操作,支持选中字体彩色是否着色。 【取型号使用范围】 取MATCH的两列数据(Relating Area)中对应MODEL的使用...
  • 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s <serialNumber>] 这一部分,直接使用 adb <command>。 为命令指定目标设备 如果有多个设备/模拟器连接,则需要为命令指定目标设备。 参数 ...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    包括160个菜单功能100个左右 自定义函数,集160个工具于一身,但体积小于15MB。当安装集成工具箱后,如果您使用Excel 2003,则将产生【工具箱】菜单, 包括160多个子菜单;如果您使用Excel 2007或者2010,将产生...
  • 【快速选定数据】 可瞬间选中与用户指定内容相同的当前工作表中所有存储格,方便选定、清除内容或其他操作,支持选中字体彩色是否着色。 【取型号使用范围】 取MATCH的两列数据(Relating Area)中对应MODEL的使用...
  • 【快速选定数据】 可瞬间选中与用户指定内容相同的当前工作表中所有存储格,方便选定、清除内容或其他操作,支持选中字体彩色是否着色。 【取型号使用范围】 取MATCH的两列数据(Relating Area)中对应MODEL的使用...
  • freemarker总结

    2015-01-04 14:22:05
    options:该参数可以省略,指定包含时的选项,包含encodingparse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true. ...
  • 因为 HTML 数据库的限制,数据中总包含特定的符号—举例来说,省略符号引号—可能导致你的数据库遭到攻击,最终得到你无法预料的结果。 解决方案是在把这些数据存入数据库前对这些数据进行相关处理。这样做会...
  • (1)选择“从行首开始匹配”,“查找内容”组合框中出现字符“^”,表示待查找字符串必须出现在文本中一行的行首。 (2)选择“字符在范围中”,那么在“^”后会增加一对括号“[]”,当前插入点在括号中。括号在...
  • 看到网上有个方案说:主项目负责加载组件,由于主项目组件之间是隔离的,那么主项目如何调用组件ApplicationLike的生命周期方法呢,目前采用的是基于编译期字节码插入的方式,扫描所有的ApplicationLike类(其有一...
  • 方程式2.1.1中省略号强调指出了需求通常还要受到比已直接给出的几个因素多得多的因素影响,包括诸如时尚、对价格变化的反应速度、对未来价格的期待、法律、法令以及风俗习惯,等等。这个需求关系方程式着重指明了...
  • EditPlus.rar +GCC

    2012-02-17 23:12:16
    过于陈旧宽松的语法规定等等。但除了TC,另一种流行的编程软件VC却过于庞大。其架构也难以快速学用。因此,在C/C++的学习上,广大初学者面临着两难的局面。  因为这个原因。我制作了这一套“EditPlus+GCC”的编程...
  • CISCO 技术大集合

    2013-05-22 01:07:13
    路由器处于用户命令状态,这时用户可以看路由器的连接状态,访问其它网络主机,但不能看到更改路由器的设置内容。 2. router# 在router>提示符下键入enable,路由器进入特权命令状态router#,这时不但可以执行...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

列举省略和内容省略