GO语言从学会到学废系列-tasks1-变量

go基础

package main import "fmt" func main() { fmt.Println("hellword") } //单行注释 /*多行注释*/

变量

package main import "fmt" func main() { var name string = "test" //定义一个字符串类型 name = "123" fmt.Println(name) } GO是静态语言 所有类型都要定义 变量定义格式: var <变量名字> type = <值> //一次性定义多个变量 var ( name string age int addr string ) 变量定义收个单词小写 每个新单词开头字母大写(不是必须的) int 默认值为 0 string 默认空 浮点数默认0.0 布尔默认 false 切片函数指针为null //:= 自动推倒变量类型 已有的变量不可以用这种方法 必须是一个新的变量 package main import "fmt" func main() { name := "test" age := 18 fmt.Printf("%T,%T", name, age) } 执行结果(注意是Printf): string,int package main import "fmt" func main() { var num int num = 100 //%d是int类型 %p是内存 %T打印类型 &是取地址符 fmt.Printf("num:%d,内存地址:%p", num, &num) } 执行结果: num:100,内存地址:0xc0000a6058

变量交换

package main import "fmt" func main() { var a int = 100 var b int = 200 b, a = a, b fmt.Println(a, b) } 执行结果: 200 100

匿名变量

package main import "fmt" func test() (int, int) { return 100, 200 } func main() { //test函数会返回两个int类型 a变量接受第一个类型的数据 _ 接受的数据会直接丢弃 //匿名变量不会占用内存,不会分配内存,匿名变量与匿名变量之间也不会因为声明而无法使用 a, _ := test() fmt.Println(a) }

变量的作用域

package main import "fmt" var name string = "aa" func main() { //局部变量 全局变量 //这就是一个内部变量只可以在这个函数里面使用 var name string = "123" fmt.Println(name) aa() } func aa() { fmt.Println(name) } //根据执行结果我们可以知道 全局变量跟局部变量名称可以相同 但是局部变量优先级更高 执行结果: 123 aa

常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量 常量类型只可以是布尔类型、数字类型(整数类型、浮点类型、复数类型)、和字符串类型 package main import "fmt" func main() { const URL string = "www.baidu.com" //显示定义 const URL2 = "www.tes.com" //隐示定义 const a, b, c = 3.14, "test", false //同时定义多个变量 fmt.Println(URL, URL2) fmt.Println(a, b, c) } const <变量名字> type = "值"

iota

iota 特殊常量,可以认为是一个可以被编译器修改的常量,iota是go语言的常量计数器

iota再const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)

package main import "fmt" func main() { const ( a = iota //0 第一个iota是0 后面没有赋值的变量会沿用iota的值+1 b //1 c //2 d = "status" //status 3 e //status 4 不定义的时候就会继承上一个变量的值 f = 100 //100 5 g //100 6 h = iota //7 i //8 ) const ( j = iota k ) fmt.Println(a, b, c, d, e, f, g, h, i) fmt.Println(j, k) } 0 1 2 status status 100 100 7 8 0 1

数据类型-布尔类型

数据类型

基本数据类型

布尔型

数值型

整型(int,int8,int32,int64,uint,uintptr,uint8,uint16,uint32,uint64)

浮点型(float32,float64,complex64,complex128)

字符串型(string)

派生数据类型

指针

数组

结构体

通道(channel)

切片(slice)

函数

接口(interface)

map

go语言是一种静态类型的编程语言 在go语言中数据类型用于声明变量和函数 布尔类型只有两个值 true 或者false package main import "fmt" func main() { // bool 默认值为false var isFlag bool = true fmt.Println(isFlag) fmt.Printf("%T,%t", isFlag, isFlag) }

数据类型-数值型

package main import "fmt" func main() { //byte uint8 //rune int32 //int int64 //定义一个整型 var age int = 18 fmt.Printf("%T,%d\n", age, age) //定义一个浮点数 默认保存6位小数 //默认四舍五入 %.数值 这个数值表示精度 var money float64 = 3.123 fmt.Printf("%T,%.2f\n", money, money) }

数据类型-字符串

package main import "fmt" func main() { var str string str = "test" fmt.Printf("%T,%s\n", str, str) //单引号 字符,整型-ASCII字符吗 v1 := 'A' v2 := "A" fmt.Printf("%T,%d\n", v1, v1) fmt.Printf("%T,%s\n", v2, v2) //编码表 ASCII //中文编码在GBK编码表里面 //全世界语言编码表 Unicode编码表 //字符串连接 fmt.Println("HELLO" + "WORDE") //转义字符 \ 换行符 \n 四个空格制表符 \t fmt.Println("HELLO \" \t WORDE") }

数据类型-数据类型转换

package main import "fmt" func main() { //由于Go语言不存在隐式类型转换,因此所有的类型转换必须是显式声明 a := 5 //默认定义是int b := 5.0 //默认float64 fmt.Printf("%T\n", a) fmt.Printf("%T\n", b) //将int类型转换为float64类型 类型转换 c := float64(a) fmt.Printf("%T\n", c) //将float64类型转换为int类型 类型转换 d := int(b) fmt.Printf("%T\n", d) }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值