【Golang学习笔记】

  • 语言特色

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群的系统编程语言。

对于高性能分布式系统领域而言,Go 语言比大多数其它语言有着更高的开发效率,它提供了海量并行的支持。

Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。

Go 语言最主要的特性:

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性
  • 学习随笔

编译执行

Go 语言源文件的扩展是 .go

要执行 Go 语言代码可以使用 go run 命令。

go run xxxxxx.go 

要生成二进制文件可以使用 go build 命令

go build xxxxxx.go 

基础语法

需要注意" { "不能单独放在一行,所以以下代码在运行时会产生错误:

package main
import "fmt"
func main()  
{  // 错误,{ 不能在单独的行上
    fmt.Println("Hello, World!")
}

cap 和 len 的区别

对于make slice而言,有两个概念需要搞清楚:长度跟容量。

  • 容量表示底层数组的大小,长度是你可以使用的大小。
  • 容量的用处在哪?在与当你用 append扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请一个底层数组,拷贝这边的值过去,把原来的数组丢掉。也就是说,容量的用途是:在数据拷贝和内存申请的消耗与内存占用之间提供一个权衡
  • 而长度,则是为了帮助你限制切片可用成员的数量,提供边界查询的。所以用 make 申请好空间后,需要注意不要越界(越 len)

switch, Type Switch和fallthrough

switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加 break。

Type Switch:

switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。

Type Switch 语法格式如下:

switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}

使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。

实例:

package main
import "fmt"
func main() {
    switch {
    case false:
            fmt.Println("1、case 条件语句为 false")
            fallthrough
    case true:
            fmt.Println("2、case 条件语句为 true")
            fallthrough
    case false:
            fmt.Println("3、case 条件语句为 false")
            fallthrough
    case true:
            fmt.Println("4、case 条件语句为 true")
    case false:
            fmt.Println("5、case 条件语句为 false")
            fallthrough
    default:
            fmt.Println("6、默认 case")
    }
}

以上代码执行结果为:

2、case 条件语句为 true
3、case 条件语句为 false
4、case 条件语句为 true

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值