另类的Go语法

1,go的变量声明顺序是:”先写变量名,再写类型名“,此C/C++的不同

2,go是通过package来组织的(与python类似),只有package名为main的包可以包含main函数,一个可执行程序有且仅有一个main包,通过import关键字来导入其他非main包。

3,可见性规则。go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包含调用。根据约定,函数名首字母小写即为private,函数名首字母大写即为public。

4,go内置关键字(25个均为小写)。

5,函数不用先声明,即可使用。

6,在函数内部可以通过 := 隐士定义变量。(函数外必须显示使用var定义变量)

7,go程序使用UTF-8编码的纯Unicode文本编写。

8,使用big.Int的陷阱:

9,从技术层面讲,go语言的语句是以分号分隔的,但这些是由编译器自动添加的,不用手动输入,除非需要在同一行中写入多个语句。没有分号及只需少量的逗号和圆括号,使得go语言的程序更容易阅读。

10,go语言只有一个循环结构——for循环。

11,go里的自增运算符只有——“后++”,自减运算符只有——“后--”,注意没有“前++”和“前--”

12,go语言中的slice用法类似python中数组

13,函数也是一个值,使用匿名函数返回一个值。

14,函数闭包的使用,闭包是一个匿名函数值,会引用到其外部的变量。

15、通过 import 关键字来导入其它非 main 包  通过 const 关键字来进行常量的定义  通过在函数体外部使用 var 关键字来进行全局变量的声明与赋值 通过  type 关键字来进行结构(struct)或接口(interface)的声明  通过 func 关键字来进行函数的声明

16、package别名  当使用第三方包时,包名可能会非常接近或者相同,此时就可以使用别名来进行区别和调用 如 import sensus "fmt",这样就把fmt的别名设为sensus

17、省略调用  当别名为一个点时,使用例如 import . "fmt" 不建议使用,易混淆 不可以和别名同时使用

18、类型零值  零值并不等于空值,而是当变量被声明为某种类型后的默认值,通常情况下值类型的默认值为0,bool为false,string为空字符串

19、类型别名  如 type( byte uint8    ruin int32 我是中文别名 string)  注意,go比较特殊的地方就是可以用中文来作别名,但不建议这么使用

20、引入的包没使用会报错

21、声明的变量不使用也会报错

22、一般不用写分号,编辑器会自动加上

23、一般的字符串不能使用单引号,可以使用双引号( " )或者反引号( ` )来创建,如fmt.Println('hello go')会报错

24、异常处理机制 Go没有提供“try-catch-finally”这样的异常处理设施,而仅仅提供了panic和recover,其中recover还要结合 defer使用。

25、在Go语言中单个字符可以使用单引号( ' )来创建。一个单一的字符可以用一个单一的rune来表示。这也是容易理解的,因为Go语言的字符串是UTF-8编码,其底层使用4个字节表示,也就是32 bit。

26、字符串处理  Go语言处理字符串的强大之处不仅限于对索引和切片的支持,很多官方包提供了大量的实用函数,可以对字符串进行很方便的操作。

27、所有变量都可以使用类型推断  也就是说不写类型,让系统自己推断

28、var的使用 全局变量的声明可使用 var() 的方式进行简写 全局变量的声明不可以省略 var,但可使用并行方式  局部变量不可以使用 var() 的方式简写,只能使用并行方式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go言是一种静态类型、编译型的编程语言,它支持面向对象、过程式和函数式编程范式。以下是Go语言的一些基本语法: 1. 变量声明和赋值 Go语言中的变量声明和赋值使用关键字var和:=符号。例如: ``` var a int a = 10 b := "hello, world!" ``` 2. 控制流语句 Go语言中的控制流语句包括if、for、switch和select。例如: ``` if a > 0 { fmt.Println("a is positive") } else { fmt.Println("a is non-positive") } for i := 0; i < 10; i++ { fmt.Println(i) } switch day { case "Monday": fmt.Println("Today is Monday") case "Tuesday": fmt.Println("Today is Tuesday") default: fmt.Println("Today is another day") } select { case msg1 := <-ch1: fmt.Println("Received message from ch1:", msg1) case msg2 := <-ch2: fmt.Println("Received message from ch2:", msg2) default: fmt.Println("No message received") } ``` 3. 函数定义和调用 Go语言中的函数定义使用关键字func,函数调用使用函数名和参数列表。例如: ``` func add(a, b int) int { return a + b } sum := add(1, 2) fmt.Println(sum) ``` 4. 结构体和方法 Go语言中的结构体定义使用关键字type,方法定义使用关键字func和结构体类型。例如: ``` type Person struct { Name string Age int } func (p *Person) SayHello() { fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age) } person := Person{Name: "Alice", Age: 25} person.SayHello() ``` 这些是Go语言的一些基本语法,当然还有很多其他的语法特性和细节需要了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值