golang学习笔记(二)

        go语言是静态强类型语言,与C语言类似,数据类型常用的主要有布尔类型(true、false),数字类型(整形int ,浮点类型float32,float64),字符类型(byte 注:byte类型本身就是uint8类型,一个字节存储的是ASCII码,比如 var i byte = ‘a’ 其实存储的是数字97) 以及字符串类型(string)。

        变量名由字母,下划线,数字构成,不能与数字开头,区分大小写,这点和C语言一样。不同之处在于,go语言首字母大写表示可以被外部包访问,小写则不能被外部包访问。变量声明以关键字var开头,var 变量名 数据类型 也可以一次声明多个 var 变量名1,变量名2 数据类型

package main

import "fmt"

func main() {

	//go语言如果没有初始化,有默认值,int类型是0, float类型是0.0 bool类型是false byte类型是‘’ string是“”
	var i int
	var f float32
	var b bool
	var c byte
	var str string
	//fmt.Printf 与c语言的printf很像
	fmt.Printf("i:%d f:%f b:%t c:%c str:%s\n", i, f, b, c, str)

	//go语言支持类型自动推导 赋值操作符 := 很方便可以初始化变量并且编译器自动推导数据类型 在 makefile的语法中也有类似用法 注:(:=不能用在已经声明的变量上,不然编译会报错)
	i1 := 10
	f1 := 3.4
	b1 := true
	c1 := 'a'
     //隐藏一个结束符‘\0’ len(str1)等于4
	str1 := "abc"
	fmt.Printf("i1:%T f1:%T b1:%T c1:%T str1:%T\n", i1, f1, b1, c1, str1)

	//支持多重赋值
	i2, i3 := 2, 3
	fmt.Println(i2, i3)
	//数据交换很方便了
	i2, i3 = i3, i2
	fmt.Println(i2, i3)
}

常量以关键字const开头,const 常量名 数据类型 (注意不能使用:=)

package main

import "fmt"

func main() {

	const a int = 10
	fmt.Println("a = ", a)
	//同样支持自动推导
	const b = 3.14
	fmt.Printf("b type %T\n", b)

}

另外多个变量定义可以用

var(
		a int
		b float32
	)
	const(
		c1 int = 20
		c2 float32 = 3.14
	)

多个变量定义同样支持自动推导

go语言有一个iota自动增长,可以用来定义类似C语言的枚举类型

package main

import "fmt"

func main() {

	//从const开始iota第一次赋值是0,以后依次递增
	const (
		e1 = iota // 0
		e2 = iota // 1
		e3 = iota // 2
	)
	fmt.Println(e1, e2, e3)
	//再次遇到const重新置零
	const a = iota // 0
	fmt.Println(a)
	const (
		e4 = iota // 0
		e5        // 1
		e6        // 2
	)
	fmt.Println(e4, e5, e6)
	//iota赋值时同一行数值一样
	const (
		e7     = iota       // 0
		e8, e9 = iota, iota // 1
		e10    = iota       // 2
	)
	fmt.Println(e7, e8, e9, e10)

}

字符串操作跟C++很像支持下标操作

package main

import "fmt"

func main() {

	str := "abcd"
	fmt.Printf("str[0]:%c str[2]:%c", str[0], str[2])

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值