当前位置: 首页 > news >正文

网站建设设计问卷公司网站注意事项

网站建设设计问卷,公司网站注意事项,搜索引擎中注册网站,建筑企业设计公司GO学习笔记之表达式 保留字运算符优先级二元运算符位运算符自增指针 保留字 Go语言仅25个保留关键字#xff08;keyword#xff09;#xff0c;这是最常见的宣传语#xff0c;虽不是主流语言中最少的#xff0c;但也确实体现了Go语法规则的简洁性。保留关键字不能用作常量… GO学习笔记之表达式 保留字运算符优先级二元运算符位运算符自增指针 保留字 Go语言仅25个保留关键字keyword这是最常见的宣传语虽不是主流语言中最少的但也确实体现了Go语法规则的简洁性。保留关键字不能用作常量、变量、函数名以及结构字段等标识符。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var相比在更新版本中不停添加新语言功能我更喜欢简单的语言设计。某些功能可通过类库扩展或其他非侵入方式实现完全没必要为了“方便”让语言变得臃肿。过于丰富的功能特征会随着时间的推移抬升门槛还会让代码变得日趋“魔幻”降低一致性和可维护性。 运算符 很久以前流传“程序算法数据”这样的说法。 算法是什么通俗点说就是“解决问题的过程”。小到加法指令大到成千上万台服务器组成的分布式计算集群抛去抽象概念和宏观架构最终都由最基础的机器指令过程去处理不同层次存储设备里的数据。 学习语言和设计架构不同我们所关心的就是微观层次诸如语法规则所映射的机器指令以及数据存储位置和格式等等。其中运算符和表达式用来串联数据和指令算是最基础的算法。 另有一句话“硬件的方向是物理软件的结局是数学。” 全部运算符及分隔符列表 ! ( ) - | - | || [ ] * ^ * ^ - { } / / : , ; % % -- ! ... . : ^ ^没有乘幂和绝对值运算符对应的是标准库math里的Pow、Abs函数实现。 优先级 一元运算符优先级最高二元则分成五个级别从高往低分别是 highest * / % ^ - | ^ ! lowest || 相同优先级的二元运算符从左往右依次计算。 二元运算符 除位移操作外操作数类型必须相同。如果其中一个是无显式类型声明的常量那么该常量操作数会自动转型。 func main() { const v20 // 无显式类型声明的常量 var a byte10b:va //v自动转换为byte/uint8类型 fmt.Printf(%T, %v\n,b,b) const c float321.2d:cv //v自动转换为float32类型 fmt.Printf(%T, %v\n,d,d) }uint8,30 float32,21.2func main() { b:23 //b是有符号int类型变量 x:1b // 无效操作:1b(shift count type int,must be unsigned integer) println(x) }位移右操作数必须是无符号整数或可以转换的无显式类型常量。 如果是非常量位移表达式那么会优先将无显式类型的常量左操作数转型。 func main() { a:1.03 // 常量表达式包括常量展开 fmt.Printf(%T, %v\n,a,a) //int,8var s uint3b:1.0s // 无效操作:1s(shift of type float64) fmt.Printf(%T, %v\n,b,b) // 因为b没有提供类型那么编译器通过1.0推断 // 显然无法对浮点数做位移操作 var c int321.0s // 自动将1.0转换为int32类型 fmt.Printf(%T, %v\n,c,c) //int32,8 }位运算符 二进制位运算符比较特别的就是“bit clear”在其他语言里很少见到。 AND 按位与都为1 ab 010100110001 OR 按位或至少一个1 a|b 0101|00110111 XOR 按位亦或只有一个1 a^b 0101^00110110 NOT 按位取反 (一元) ^a ^01111000 AND NOT 按位清除 (bit clear) a^b 0110^10110100 LEFT SHIFT 位左移 a2 000131000 RIGHT SHIFT 位右移 a2 101020010位清除AND NOT和位亦或XOR是不同的。它将左右操作数对应二进制位都为1的重置为0有些类似位图以达到一次清除多个标记位的目的。 const( read byte1iotawriteexecfreeze ) func main() { a:read|write|freezeb:read|freeze|execc:a^b // 相当于a^read^freeze但不包括execfmt.Printf(%04b^ %04b %04b\n,a,b,c) }自增 自增、自减不再是运算符。只能作为独立语句不能用于表达式。 指针 不能将内存地址与指针混为一谈。 内存地址是内存中每个字节单元的唯一编号而指针则是一个实体。指针会分配内存空间相当于一个专门用来保存地址的整型变量。 p: x x:100-------------------------------\\---------------------- memory ... |0x1200| .... |100 | ... -------------------------------\\---------------------- address 0x800 0x1200取址运算符“”用于获取对象地址。 指针运算符“”用于间接引用目标对象。 二级指针**T如包含包名则写成package.T。 并非所有对象都能进行取地址操作但变量总是能正确返回addressable。指针运算符为左值时我们可更新目标对象状态而为右值时则是为了获取目标状态。 func main() { x:10var p*int x // 获取地址保存到指针变量 *p20 // 用指针间接引用并更新对象 println(p, *p) // 输出指针所存储的地址以及目标对象 }输出 0xc82003df30 30指针类型支持相等运算符但不能做加减法运算和类型转换。如果两个指针指向同一地址或都为nil那么它们相等。 func main() { x:10p: xp // 无效操作:p (non-numeric type*int) var p2*intp1 // 无效操作:p1(mismatched types*int and int) p2 xprintln(pp2) }可通过unsafe.Pointer将指针转换为uintptr后进行加减法运算但可能会造成非法访问。 Pointer类似C语言中的void*万能指针可用来转换指针类型。它能安全持有对象或对象成员但uintptr不行。后者仅是一种特殊整型并不引用目标对象无法阻止垃圾回收器回收对象内存。 指针没有专门指向成员的“-”运算符统一使用“.”选择表达式。 func main() { a:struct{ x int}{} a.x100p: ap.x100 // 相当于p-x100println(p.x) }零长度zero-size对象的地址是否相等和具体的实现版本有关不过肯定不等于nil。即便长度为0可该对象依然是“合法存在”的拥有合法内存地址这与nil语义完全不同。 在runtime/malloc.go里有个zerobase全局变量所有通过mallocgc分配的零长度对象都使用该地址。不过上例中对象a、b在栈上分配并未调用mallocgc函数。 func main() { var a,b struct{} println(a, b) println(a b, anil) } 运行结果 0xc820041f2f 0xc820041f2f true false
http://www.hkea.cn/news/14389625/

相关文章:

  • 答题网站开发wordpress页面和自定义链接地址
  • 宿州做网站分销系统php开源
  • 培训公司网站源码专利减缓在哪个网站上做
  • 网站开发时间进度表模板下载做网站买什么空间
  • 游戏是怎么做的视频网站企业微网站哪个版本好
  • 企业网络组网设计扬州外贸网站seo
  • 微电影分享网站织梦整站源码大良营销网站建设精英
  • 装饰网站建设多少钱wordpress英文改中文
  • 织梦网站后台模板开发app用什么框架
  • 个人求职网站源代码网站建设行规
  • 街道网站建设兰西网站建设
  • 大型网站建设开发平台经济是什么意思
  • 扁平网站欣赏手机网站 标题长度
  • 郑州建设网站公司2018网站开发最新技术
  • nike官方网站定制易语言可以做api网站对接吗
  • 手机网站开发用什么语言镇江网站排名公司
  • 长沙企业网站建设较好的公司简述电子商务的概念
  • 深圳cms建站系统制作个人网站主页
  • 网站建设的内容规划163建筑网站
  • 建站工具搭建前台网站如何制作自己的网页链接
  • 网站内容更新软件网站开发的ui设计
  • 学做网站论坛vip共享分销系统怎么做
  • 威海做网站的哪家好三 网站开发使用软件环境
  • 网站敏感词汇怎么给网站命名
  • 北京做电商网站青之峰做网站
  • 白云网站建设网站开发 非对称加密
  • vultr 做网站网站开发公司如何做直播
  • 润商网站建设服务期货模拟网站开发
  • 重庆网站优化建设网上有多少个购物平台
  • 厦门网站建设案例mil后缀网站