一起认识go语言(五)| 青训营

61 阅读2分钟
  1. 跨平台、有垃圾回收机制;
  2. 支持Unicode字符集(符号集)以及utf-8编解码(存储格式),Go语言源文件总是用UTF8编码;
  3. 默认使用了静态编译,不依赖任何动态链接库;
  4. 必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过。go语言编译过程中只有报错,没有警告;
  5. Go语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句;
  6. gofmt工具把代码格式化为标准格式;
  7. 只有i++,没有++i。i++是语句而非表达式,j = i++是错误的;
  8. Go语言只有for循环这一种循环语句。
  9. 每次循环迭代,range产生一对值;索引以及在该索引处的元素值;
  10. 空标识符(blank identifier),即_(也就是下划线)。空标识符可用于在任何语法需要变量名但程序逻辑不需要的时候(如:在循环里)丢弃不需要的循环索引,并保留元素值;
  11. 声明一个变量有好几种方式。
  12. Go语言并不需要显式地在每一个case后写break,语言默认执行完case后的逻辑语句会自动退出。当然了,如果你想要相邻的几个case都执行同一逻辑的话,需要自己显式地写上一个fallthrough语句来覆盖这种默认行为。
  13. Go语言里的switch还可以不带操作对象(译注:switch不带操作对象时默认用true值代替,然后将每个case的表达式和true值进行比较);可以直接罗列多种条件,像其它语言里面的多个if else一样。
  14. 指针是可见的内存地址,&操作符可以返回一个变量的内存地址,并且*操作符可以获取指针指向的变量内容,但是在Go语言里没有指针运算,也就是不能像c语言里可以对指针进行加或减操作。