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= %c\n", varChar1)
	fmt.Printf("varChar= %c\n", varChar2)
	fmt.Printf("varChar= %c\n", 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)
}

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

任性的萝卜

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值