第一节:变量的定义和使用
一、建立一个空的工程,开始go的第一课学习(使用goland编辑器,具体安装**可百度,go 版本 1.12.8)
1、建立一个basic.go文件。
文件里面很简单,只有一个main函数
2、开始学习变量定义
2-1、老规矩,"hello world"来一个
点击左边绿色的三角按钮,运行,不出意外的话控制台就会打印出 "hello world",好!已经迈出了学习go的第一步!
2-2、包内部变量定义:
go语言没有全部变量的概念,只有包内部变量和函数内部变量。
方法一:
/* 包内部变量定义 */
/**
包内部变量定义,包内部变量定义不能使用 := 的方式
*/
//方法一
var aa int=456
var bb string="i am go"
var aa int =456:定义一个类型为int型的变量,并且赋值初始值为456
var bb string = "i am go":定义一个类型为string的变量,并且赋值初始值为 "i am go"
go的变量定义和其他语言有一点不一样(java,c,c#),go是先写变量名,再写变量类型,常规操作都是:int a = 456,据说go的开发者认为这样的定义更符合规范和人的思维,有过其他语言基础的人第一次接触有一点点别扭,稍微注意一下。
放法二:(稍微简单一点,变量比较多可以用这种)
//方法二
var (
aaa int=456
bbb string="i am go"
)
作用和第一种一样,但是可以省略var关键字,当变量很多时可以用这种方便一点。
2-3:放法内部变量定义(局部变量)
定义但不赋初始值:
/* 局部变量定义 */
/**
没有初始值的变量定义
*/
func variableZeroValue() {
var a int //go语言中,变量定义时,变量名在前,类型在后。
var b string
//未赋值时,int类型的值为0,字符串类型为空字符串
fmt.Printf("%d,%q\n",a,b)
}
注意:没有赋初始值时,编译器会字段赋初始值。go不允许没有初始值的变量存在。
定义并且赋初始值:
/**
赋初始值的变量定义
*/
func variableInitialValue() {
var a int=1
var c,d int= 2,3
var b string="hello go"
fmt.Println(a,b,c,d)
}
类型推断,省略类型关键字
使用推断类型,编译器会根据赋值的类型推断该变量的类型,包内部变量也可以这样写。
/**
类型推断,省略类型关键字
*/
func variableTypeDeduction() {
var a=1
var c,d,e = 2,3,true
var b="hello go"
fmt.Println(a,b,c,d,e)
}
省略var关键字,用 :=代替 表示 声明并且赋值
/**
更简便的写法
省略var关键字,使用 := 定义并且赋值
*/
func variableShorter() {
a,b,c,d:=1,2,true,"hello"
fmt.Println(a,b,c,d)
}
注意: := 放法不能用于包内部变量的定义,只能在放法内部变量定义使用!
最后统统输出一波:
func main() {
fmt.Println("hello world")
variableZeroValue()
variableInitialValue()
variableTypeDeduction()
variableShorter()
fmt.Println(aa,bb)
fmt.Println(aaa,bbb)
}
控制台:
第一个输出双引号,可以看出编译器的确给没有赋初始值的字符串变量赋值了空字符串,打印放法 :%q。
感觉记录的很罗嗦,其实有过一门语言基础的人看这些都是一目十行,可以直接略过,毕竟大同小异,但是我觉得既然是学习一门新的语言,还是从基础开始记录比较好,哪怕繁琐一点,枯燥一点,多写一次自己也能多消化一次,可能记录的中间有一些错误,希望自己以后能想起来或者发现,毕竟也是头一回学,go到底是怎么样的一门语言,还得慢慢学习!加油!
推荐阅读
-
PHP实现的汉字拼音转换和公历农历转换类及使用示例_PHP
-
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
-
我们可以使用Phalanger创建组合.NET和PHP的解决方案
-
PHP中的魔术方法总结和使用实例_PHP教程
-
php parse_str() 函数的定义和用法,phpparse_str
-
PHP函数级分层性能分析工具xhprof的安装和使用方法
-
php中全局变量global的使用演示代码
-
solrcloud和zookeeper的搭建、使用、心得、教训
-
solrcloud和zookeeper的搭建、使用、心得、教训
-
window下自定义定时关机和定时重启的脚本