注意事项
1.因为go语言是不用加分号(;)的所以编译的时候是会默认只有每行的最后才有;,因此写代码时不要都挤在一行。
2.package main代表你写的是执行程序,这样才可以运行,如果你是别的,就表示你写的是库,所以不能运行
3.左括号不能换行
4.如果定义的变量或者引入的包没有用过,那么编译不能通过,但是全局变量除外
变量
声明变量的格式:
(普通)
var (变量名) (变量类型) = (赋值)
赋值的时候必须比变量类型相匹配!!!!
如果没有赋值,那不同的类型有不同的默认值
如果没有写变量类型,那编译器会自动根据你的赋值来匹配
(简洁)
(变量名) := (赋值)
多变量声明
(变量1),(变量2),(变量3) := (赋值1),(赋值2),(赋值3)
var (变量1),(变量2),(变量3) = (赋值1),(赋值2),(赋值3)
var(变量1),(变量2),(变量3)(类型)(不支持多类型) = (赋值1),(赋值2),(赋值3)
在全局变量中还可以这样声明
var(
(变量1):= (赋值1)
(变量2):= (赋值2)
(变量3):= (赋值3)
)
基本类型
整型(0) | int,int8,int16,int32,int64,uint,uint8....,byte |
浮点型(0) | float32,float64 |
布尔型 (false) | bool |
字符串("") | string(定义好了内部不可改变)(含特殊字符用反引号``) |
字符型(单字符)(0) | byte |
数据类型转换
【1】整型和浮点型之间的转换
T(v)//将v的类型转成T
【2】整型和字符型之间的转换
方法一(转成string)
package main //声明文件所在的包,go语言必须要有
import "fmt" //引入程序中要用的包
func main(){
a := 1.1
var s string = fmt.Sprintf("%v",a)
fmt.Printf("%T\n",s)
fmt.Printf("%v\n",s)
}
/*
输出
string
1.1
*/
方法二(转成string)
用strconv这个库中的FormatInt函数,这个比较麻烦,而且函数限制也比较多,详细可以看官网解释,个人不推荐平常使用
package main //声明文件所在的包,go语言必须要有
//引入程序中要用的包
import(
"fmt"
"strconv"
)
func main(){
var b int = 123
var ss string = strconv.FormatInt(int64(b),10)
fmt.Printf("%T\n",ss)
fmt.Printf("%v\n",ss)
}
方法三(string转成别的)
因为strconv.ParseBool函数有两个返回值,第一个是string就是转换后的东西,第二个是error也就是错误报告,所以在go语言中必须有两个接收的变量,但是因为我们只需要第一个,所以第二个我们可以用_来表示不接受,但是在项目中不推荐这样做,最好接收并验证错误报告,提高安全性
如果转换的时候不是有效值,比如将"golang"转成int,那就会返回类型的默认值
package main //声明文件所在的包,go语言必须要有
//引入程序中要用的包
import(
"fmt"
"strconv"
)
func main(){
var s string = "true"
var a bool
a , _ = strconv.ParseBool(s)
fmt.Printf("%v",a)
}
输出
有两种方法
【1】
普通的输出
fmt.Print("a=",a)//不带换行
fmt.Println("a=",a)//自带换行
【2】
像c语言那种格式化输出,可以用像c语言的%d,%f,go自带的%v是可以自动识别的,但是如果想要保留小数后几位那还是要用%.2f
fmt.Printf("%v\n",a)
帮忙点点赞,求求各位大佬了/(ㄒoㄒ)/~~