Nim 2.0.2 中文手册分组元素。 & 是预先运算符; &a 表示期望⼀个 a ,但没有⽤掉,⽽在之后的规则中被消耗。 | 和 / 符号⽤来标记备选项,优先级最低。 / 是有序选择,要求解析器按照给定的顺序来尝试备选项, / 常⽤来消除语法⼆义 性。 ⾮终结符号以⼩写字⺟开头,抽象终结符号字⺟全⼤写,逐字的终结符号(包括关键词)⽤ ' 引起来。例如: ⼆元的 ^* 运算符表示为 0 或更多,由第⼆个参数做为间隔; identi�er "标识符"是变量、类型、过程等的名称声明符号,⼀个声明所适⽤的程序区域被称为该声明的 scope "作⽤域", 作⽤域 可以嵌套,⼀个标识符的含义由标识符所声明的最⼩包围作⽤域决定,除⾮重载的解析规则另有建议。 ⼀个表达式特指产⽣值或地址的计算,产⽣地址的表达式被称为 l-values "左值",左值可以表示地址,也可以表示该地址包含的 值,这取决于上下⽂。 Nim program ⽬前,任何序数值⼤于 127 的 Unicode 字符(⾮ ASCII )都被归类为 letter "字", 因⽽可以做为标识符的⼀部分,但以后的语⾔版 本可能会将⼀些 Unicode 字符指定为运算符。 以下关键词被保留,不能作为标识符使⽤: 有些关键词是未使⽤的保留字,提供给语⾔未来拓展。 标识符相等 如果以下算法返回真,则认为两个标识符相等: 这意味着,在进⾏⽐较时,只有第⼀个字⺟是区分⼤⼩写的,其他字⺟在0 码力 | 127 页 | 7.05 MB | 1 年前3
Object Pascal 参考手册(Ver 0.1) 出现在实数中时,它表示 10 的几次方。比如,7E-2 表示 7*10^-2,12.25e+6 和 12.25e6 都表示 12.25*10^6。 $前缀表示一个 16 进制数字,比如$8F。没有“-”号运算符的数字被认为是正数。在赋值时,若它 的值在接收者的数据类型范围之外,将产生一个错误,除非它是整数类型(32 位整数),此时将引发一 个警告,并且,values exceeding the positive 它在字符串 ”Line 1” 和 ”Line 2” 之间放一个回车(#13)换行(#10)符。但你不能使用这种方 式组合两个引用串,因为两个连续的单引号被解释为一个单引号。要组合多个引用串,可以使用“+” 运算符,或简单地把它们合并成一个引用串。 常量字符串的长度是它所包含的字符个数。一个任意长度的字符串,与任何字符串(string)类型以 及 PChar 类型是兼容的;一个长度为 1 的字符串,与任何 中讲述)。更复杂的表达式由简单表达式使 用运算符、函数调用、集合构造器、索引和类型转换构成。 Operators(运算符) About operators(关于运算符) 运算符就像 Object Pascal 的内置函数,它是语言的一部分。例如,表达式(X+Y)由变量 X 和 Y(X、 Y 称为运算数或操作数,operand,)通过“+”运算符计算而得。当 X 和 Y 表示整数或实数时,(X+Y)0 码力 | 168 页 | 868.25 KB | 1 年前3
C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector比如右边这段代码会得到 4 。 • size_t size() const noexcept; vector 容器: operator[] • 要访问 vector 里的元素,只需用 [] 运算符 : • 例如 a[0] 访问第 0 个元素(人类的第一 个) • 例如 a[1] 访问第 1 个元素(人类的第二 个) • int &operator[](size_t i) noexcept; noexcept; • int const &operator[](size_t i) const noexcept; vector 容器: operator[] • 值得注意的是, [] 运算符在索引超出数组大 小时并不会直接报错,这是为了性能的考虑。 • 如果你不小心用 [] 访问了越界的索引,可能 会覆盖掉别的变量导致程序行为异常,或是访 问到操作系统未映射的区域导致奔溃。 • int 元素全为 0 的数组。 • vector(initializer_listlist); • explicit vector(size_t n); vector 容器 • 添加一个运算符重载用于打印 vector 类 型。 vector 容器:构造函数 • vector 的这个显式构造函数,默认会把所有元 素都初始化为 0 (不必手动去 memset )。 • 如果是其他自定义类,则会调用元素的默认构造 0 码力 | 90 页 | 4.93 MB | 1 年前3
Java 应用与开发 - 面向对象编程进阶大纲 多态性 方法重载 关键字 static 关键字 final Java 应用与开发 面向对象编程进阶 PART2 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 多态性 方法重载 关键字 static 关键字 final 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 final 关键字的概念和使用方法 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 接��� 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? //Student 是 Person 的子类 0x3a478b null 0 null name age school Student类型对象 Person类型变量p 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建0 码力 | 49 页 | 659.74 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . . . 12 2.1.4 关键字与标识符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.5 运算符与表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1.6 从键盘获得输入 . . . . . . . . . . . . 49 5.1.5 instanceof 运算符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.6 虚方法调用和造型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2 方法重载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.1 方法重载的概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.2.2 调用重载的构造方法 . . . . . . . . . . . . . . . . . . . . . . . . . . 51 50 码力 | 330 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串std::string 应运而生 • string 可以从 const char * 隐式构造: • string s = “hello”; • string 具有 + 、 += 、 == 等直观的运算符重载: • string(“hello”) + string(“world”) == string(“helloworld”) • string 符合 vector 的接口,例如 begin/end/size/resize…… ),必须和右边的参数一致,初学者容易搞错 。 • 而且即使搞错了也能正常编译通过(一些高级的编译器会 给出警告),但是运行结果不对,或者还有可能崩溃。 泛型的 iostream 应运而生 • 得益于 C++ 的重载技术, cout 不用你手动指定类型,他 会自动识别参数的类型,帮你调用相应的格式化函数。 c_str 和 data 的区别 • s.c_str() 保证返回的是以 0 结尾的字符串首地址指针,总长度为 char * ,请调用 .c_str() 这个成员函数 。 字符串的连接( + 运算符) • C 语言规定,双引号包裹的字符串是 const char * 类型的,他们没有 + 运算 符。 • C++ 为了向前兼容,没办法改变 C 语言的这项规定,只能退而求其次,他另 外定义了一个 string 类,重载了 + 运算符,并告诉同学们:以后尽量用我这 个封装好的类,不要直接用 C 语言的 const0 码力 | 162 页 | 40.20 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针14 是 double 类型的常量, 3.14f 才是 float 类 型的常量。 std::abs 函数:自动根据参数类型判断要使用的重载 • 在 C++ 中可以用 std::abs 替代 abs ,这个 在 std 命名空间中的版本是带有多种重载的。 • 建议别用全局的任何函数( C 语言原始的), 始终带上 std:: 前缀( C++ 改良后的)。 • C++ 甚至还有 std::printf std::size_t 虽然 这些其实没有任何区别…… using namespace std 大法的确也可以 • 顺便一提,用了 using namespace std 以后全局 的 abs 就有重载了,可以不加 std:: 前缀。 • 但是我个人很不推荐 using namespace std 因为 : • std::ws , std::tm , std::exa , std::size 懂我意思吧?你永远猜不到他们玄学名字能多短。 • 一不小心就和你现有的函数撞名了,你根本搞不清 。 常用函数名称一览表 int long long long float double C++ 重载版 abs labs llabs fabsf fabs std::abs - - - fmaxf fmax std::max - - - fminf fmin std::min % % % fmodf0 码力 | 128 页 | 2.95 MB | 1 年前3
Go 入门指南(The way to Go)性能说明 3.9 与其它语言进行交互 第4章:基本结构和基本数据类型 4.1 文件名、关键字与标识符 4.2 Go 程序的基本结构和要素 4.3 常量 4.4 变量 4.5 基本类型和运算符 4.6 字符串 4.7 strings 和 strconv 包 4.8 时间和日期 4.9 指针 - 2 - 本文档使用 书栈(BookStack.CN) 构建 第5章:控制结构 5 18 日发布。当前 Go 语言的稳定版本是 Go 1.4.2。 许多能够在大多数面向对象语言中使用的特性 Go 语言都没有支持,但其中的一部分可能会在未来被支持。 为了简化设计,不支持函数重载和操作符重载 为了避免在 C/C++ 开发中的一些 Bug 和混乱,不支持隐式转换 Go 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承 尽管在接口的使用方面(第 11 进行交互 3.9 与其它语言进行交互 - 50 - 本文档使用 书栈(BookStack.CN) 构建 这些库可以使用 cgo 来调用。 相关的 Go 文件也可以被自动生成。 这类接口支持方法重载、多重继承以及使用 Go 代码实现 C++ 的抽象类。 目前使用 SWIG 存在的一个问题是它无法支持所有的 C++ 库,比如说它就无法解析 TObject.h。 3.9 与其它语言进行交互 -0 码力 | 466 页 | 4.44 MB | 1 年前3
Go 入门指南(The way to Go)语言的稳定版本是 Go 1.4.2。 1.2.7 关于特性缺失 许多能够在大多数面向对象语言中使用的特性 Go 语言都没有支持,但其中的一部分可能会在未来被支 持。 为了简化设计,不支持函数重载和操作符重载 为了避免在 C/C++ 开发中的一些 Bug 和混乱,不支持隐式转换 Go 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承 尽管在接口的使用方面(第 11 些使用 SWIG 的注意事项: 编写需要封装的库的 SWIG 接口。 SWIG 会产生 C 的存根函数。 这些库可以使用 cgo 来调用。 相关的 Go 文件也可以被自动生成。 这类接口支持方法重载、多重继承以及使用 Go 代码实现 C++ 的抽象类。 目前使用 SWIG 存在的一个问题是它无法支持所有的 C++ 库,比如说它就无法解析 TObject.h。 Go入门指南 - 29 - 本文档使用 后紧跟着 0 个或多个字符或 Unicode 数字,如:X56、group1、_x23、i、өԑ12。 以下是无效的标识符: 1ab(以数字开头) case(Go 语言的关键字) a+b(运算符是不允许的) Go入门指南 - 30 - 本文档使用 看云 构建 _ 本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任 何类型都可以赋值给它),但0 码力 | 380 页 | 2.97 MB | 1 年前3
现代C++ 教程:高速上手C++11/14/17/20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 显式虚函数重载 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 显式禁用默认函数 . unique_ptr。 • register 关键字被弃用,可以使用但不再具备任何实际含义。 • bool 类型的 ++ 操作被弃用。 • 如果一个类有析构函数,为其生成拷贝构造函数和拷贝赋值运算符的特性被弃用了。 • C 语言风格的类型转换被弃用(即在变量前使用 (convert_type)),应该使用 static_cast、 reinterpret_cast、const_cast 来进行类型转换。 那么在下面这句代码中: char *ch = NULL; 没有了 void * 隐式转换的 C++ 只好将 NULL 定义为 0。而这依然会产生新的问题,将 NULL 定义 成 0 将导致 C++ 中重载特性发生混乱。考虑下面这两个 foo 函数: void foo(char*); void foo(int); 那么 foo(NULL); 这个语句将会去调用 foo(int),从而导致代码违反直觉。0 码力 | 83 页 | 2.42 MB | 1 年前3
共 224 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23













