对C++和Java使用比较多一些,现在需要使用Go,以下记录了学习Go过程中,Go与C++、Java在语法和使用上一些不同之处。好记性不如烂笔头,记录下来,以便查询。
1、当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )。
2、函数的 { 不能单独放在一行,否则会产生错误,例如:
package main
import "fmt"
func main()
{ // 错误,{ 不能在单独的行上
fmt.Println("Hello, World!")
}
3、声明一个变量时,可不指定类型,会根据其赋的值自动解析变量类型
例如:var d = true
4、声明一个变量并赋值的新用法 :=
intVal,intVal1 := 1,2 //将变量intVal,intVal1分别赋值为1,2,会自动将变量解析为int类型
:=的左边必须至少包含一个未被声明过的变量,否则会报错
注:这种不带声明格式的(例如:intVal,intVal1 := 1,2 )只能在函数体中出现
5、Go 没有三目运算符,所以不支持 ?: 形式的条件判断
6、select语句
select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行
7、无限循环
package main
import "fmt"
func main() {
for true {
fmt.Printf("这是无限循环。\n");
}
}
8、Go使用 gcfg.ReadFileInto() 读取YAML,JSON,INI等配置文件
https://yq.aliyun.com/articles/693684
参考:https://www.runoob.com/go/go-tutorial.html
持续更新ing....................................................................