go基础入门

go想解决的问题

  1. 多核硬件架构
  2. 超大规模分布式集群
  3. web模式导致的开发规模和更新速度

go的特点

  1. 简单
  2. 高效
  3. 高生产力
  4. 云计算语言
  5. 区块链语言

go与其它语言的区别

  1. 可以自动类型推断
	a := 1
  1. 在一个赋值语句中,可以对多个变量同时赋值
	a := 1
	b := 2
	a, b = b, a
  1. 不允许隐式类型转换
	var a int32 = 3
	var b int64 = int64(a)
  1. 别名和原有类型也不能进行隐式类型转换
	type MathF int32
	var a int32 = 3
	var b MathF = MathF(a)
  1. 不支持指针运算
	var a int = 2
	var ptr = &a
	//ptr = ptr+1 是非法运算
  1. string是值类型,默认值是空字符串,不是nil
	var s string      //s 为 “”
  1. 没有前置的++,- -
	a := 1
	a++
	//++a 非法运算
  1. 相同维数,相同元素个数的数组才可以比较。每个元素都相同时才相等
	a := [...]int{1, 2, 3}
	b := [...]int{1, 2, 3}
	c := [...]int{9}
	res := (a == b)   //res = true
	// res:= (a == c)  非法运算
  1. 按位清零
	1 &^ 0   // 1
	1 &^ 1   // 0
	0 &^ 1   // 0
	0 &^ 0   // 0
  1. 仅支持循环关键字for
	i := 0
	for i < 5 {
		fmt.Println(i)
		i++
	}
  1. if条件语句的条件表达式必须为布尔值,支持变量赋值
	if i := rand.Intn(100); i > 60 {
		fmt.Println("pass")
	}
  1. switch语句条件表达式不限制为常量或整数;单个case中,可以出现多个结果选项,用逗号分隔;不需要用break退出case;
	i := rand.Intn(4)
	switch i {
	case 0, 2:
		fmt.Println("even")
	case 1, 3:
		fmt.Println("odd")
	default:
		fmt.Println("invalid")
	}

可以不设定switch的条件表达式,此时相当于多个if…else…语句

	i := rand.Intn(4)
	switch {
	case i%2 == 0:
		fmt.Println("even")
	case i%2 == 1:
		fmt.Println("odd")
	default:
		fmt.Println("invalid")
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值