golang中变量声明、初始化和赋值以及类型转换 - Go语言中文社区

golang中变量声明、初始化和赋值以及类型转换


1、在go语言中变量的声明和赋值和java、c、c++等都有明显区别,
1.1、在开发go项目/程序时,目录结构(有的ide需要自己建文件结构)如下:
在这里插入图片描述
1.2、go程序的代码写在以 .go结尾的格式的文件中
1.3、在go中也有包的概念,且所有所有go文件必须属于一个包
1.4、下面同过代码具体简绍go语言的代码风格及变量声明与赋值

//指定所在包
package main
//导入需要的包 和java差不多,导包后可以使用包中的函数
import (
	"fmt"
	"strconv"
)

/*
 * @Descripttion: golang中变量声明、初始化和赋值以及类型转换
 * @version:
 * @Author: shuai
 * @Date: 2020-02-19 08:29:47
 * @LastEditors: shuai
 * @LastEditTime: 2020-02-19 14:49:14
 */
func main() {
    //了解go中的代码风格:
    //1)go中每一行只能写一条语句且不需加引号
    //2) {必须在函数的()后面不能换行
    //3)go也是通过main函数启动程序的 而定义函数使用func
	//变量声明方式一:使用var
	//注意声明过的变量必须使用否则会报错
	var var1 int32
	var1 = 32
	fmt.Println("var1=", var1)

	//变量声明方式二:省略var使用':='声明并初始化
	//注意使用此方法':='左侧的变量不能是声明过的
	//
	var2 := 32
	fmt.Println("var2=", var2)

	//变量声明方式三:不指定类型,根据值判断设置类型
	//注意:才方式在生命时必须初始化
	var var3 = 32
	fmt.Println("var3:", var3)

	//变量声明方式四:多变量声明
	name, age := "帅", 18
	fmt.Println("姓名:", name, "年龄:", age)

	//变量声明方式五:多变量声明
	var (
		name1 = "guai"
		age1  = 18
	)
	fmt.Println("姓名:", name1, "年龄:", age1)

	//浮点型:golang中的浮点型只有float32,float64,声明方式与int方式相同
	floatVar := 12.12
	floatVar2 := 12.12e2
	fmt.Println("floatVar: ", floatVar)
	fmt.Println("floatVar2:", floatVar2)

	//字符型: Golang中没有专门的字符类型,一般使用byte保存字符
	//GO的字符串与传统字符串不同,它是由字节组成的,而传统字符串由字符组成
	varChar := 'q'
	var varChar1 byte = 'g'
	varChar2 := '乖'
	//当使用byte保存中文时会出现 overflow溢出,因为中文的对应码超出了255而byte保存不了超过255的值
	//需要使用int保存单个中文字符
	//var VarChar3 byte = '乖'
	var varChar3 int = '乖'
	//注意:字符的输出需要使用格式化输出方式,否则输出的时对应的ASCII
	//当使用格式化输出时需使用Printf
	fmt.Println("varChar:", varChar)
	fmt.Printf("varChar= %cn", varChar1)
	fmt.Printf("varChar= %cn", varChar2)
	fmt.Printf("varChar= %cn", varChar3)

	//boolean类型
	booleanVar := true
	if booleanVar {
		fmt.Println("booleanVar is true!")
	}

	//String类型
	//注意:golang中的字符串一旦赋值将不能修改
	varStr := "一定要乖!"
	//以下语句错误:cannot assign to varStr[1]
	//varStr[1] = 'a'
	fmt.Println("varStr:", varStr)

	//注意:在字符串赋值时可以使用""也可以使用``(反引号)反引号在键盘左上角
	//区别:""可以识别转义字符  ``不会识别转义字符
	varStr1 := "换行n换行"
	varStr2 := `换行n换行`
	fmt.Println("这里将换行:", varStr1)
	fmt.Println("这里不会换行而是打印\n:", varStr2)

	//字符串拼接
	varStr3 := "hello" + " world"
	varStr3 += "!"
	fmt.Println("varStr3:", varStr3)

	//类型转换
	//在golang中不支持类型自动转换,需要显式转换
	//基本语法 var var1 T= T(var) 例:
	// varTypeCon := 12
	// varTypeCon1 := float32(varTypeCon)
	// fmt.Println("conversion1:", varTypeCon1)

	//当浮点型转int时会损失精度
	// varTypeCon := 12.9
	// varTypeCon1 := int32(varTypeCon)
	// fmt.Println("conversion1:", varTypeCon1)

	//基本类型转字符串  fmt.Sprintf(format String,a ..interface{}) string
	//format 表示被转换的数据类型对应的格式字符
	// varTypeCon := 12.3
	// varTypeCon1 := fmt.Sprintf("%f", varTypeCon)
	// fmt.Println("conversion1:", varTypeCon1)

	//字符串转值类型
	//errorInf:表示返会的错误信息,在Go中函数可以有两个返回值
	varTypeCon := "12.4"
	varTypeCon1, errorInf := strconv.ParseFloat(varTypeCon, 32)
	varTypeCon2, errorInf2 := strconv.ParseInt(varTypeCon, 32)
	fmt.Println("conversion1:", varTypeCon1)
	fmt.Println("error:", errorInf)
}
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44373940/article/details/104393115
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-06 22:21:53
  • 阅读 ( 1123 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢