目录
前言——碎碎念
大学时期的我一直纠结于编程语言的选择,直到我关注的一个博主 “英雄哪里出来” 他解答过这个问题。
原话我记不清了大概意思是不管哪种语言都会有 “很厉害或者很菜的人” ,最重要的是先学好一门语言(不管哪种),然后拥有能快速入门其他语言并应用起来的能力。
最近空闲时间我就看了Go的基础语法(先简单入了个门,Go也应用于游戏服务端,万一以后会用到呢)。
Go语法学习网站:Go by Example
Go语言Web方向学习网站:Go Web Examples - Learn Web Programming in Go by Examples
Go语言是一门编译语言。
在你运行程序之前,Go 首先使用编译器把你的代码转换成机器能够读懂的 1和 0。
它会把你所有的代码编译成一个可执行文件,在编译的过程中,Go编译器能够捕获一些错误。
不是所有的编程语言都使用这种方式。
Python、Ruby 等很多语言都是使用解释器,随着程序的运行,一个语句一个语句的进行翻译。但这也意味着 bug 可能就潜伏在你还没有测试过的路径上。
环境安装
地址:Go安装包下载
下载完是一个安装包直接安装,使用安装包安装在系统变量的环境变量Path中会自动把Go环境配置好
用户变量的Path可能会自动配置到C盘,可以自己改一下
安装完成后测试
配置环境变量
打开高级系统设置——》环境变量
在自己设置的GOPATH目录里新建三个文件夹 (官方推荐项目的目录结构)
打开命令行窗口查看有没有配置好
开发工具可以下载GoLand或者VSCode(我用的VSCode)
【go】一、go语言vscode开发环境_vscode 运行go-CSDN博客
变量的定义
有些变量名重复我都注释掉了,可以打开注释自己练习一下
package main
import "fmt"
//全局变量
var name string = "李四"
func main(){
//fmt.Println("hello world!") //输出语句
// var name string = "www" //定义变量
// var age int = 23
// fmt.Println(name)
// fmt.Println(age)
// var (
// name1 string
// age1 int
// addr string
// )
// fmt.Println(name1,age1,addr)
// name1 = "111"
// age1 = 24
// addr = "222"
// fmt.Println(name1,age1,addr)
// // := 自动推导数据类型
// name3 := "www"
// age3 := 23
// fmt.Println(name3,age3)
// fmt.Printf("%T,%T",name3,age3) //打印什么类型
// var num int
// num=100
// fmt.Printf("num:%d,内存地址:%p",num,&num) //取地址符号 & num:100,内存地址:0xc00000a0b8
/*变量交换*/
// var a int = 100
// var b int = 200
// b,a = a,b //a,b的值互换
// fmt.Println(a,b) //200 100
// a,b := test()
// fmt.Println(a,b)
// c,_ := test() // _(匿名变量) 当不用第二个返回值时用 _ 接收
// fmt.Println(c)
/*局部变量*/
// var name string = "李五"
// fmt.Println(name) //优先打印局部变量
/*常量*/
// const URL string = "www.baidu.com" //显示定义(明确什么类型)
// const URL2 = "www.baidu.com" //隐式定义(不明确类型)
// const a,b,c = 3.14,"www",false
/*
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
iota是go语言的常量计数器iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
iota 可以被用作枚举值
*/
// const(
// d = iota
// e = iota
// f = iota
// )
// fmt.Println(URL,URL2)
// fmt.Println(a,b,c,d,e,f) //3.14 www false 0 1 2
// const(
// a = iota //0
// b //1
// c //2
// d = "hahaha" //hahaha iota 3
// e //hahaha iota 4
// f = 100 //100 iota 5
// g //100 iota 6
// h = iota //iota 7
// i //iota 8
// )
// fmt.Println(a,b,c,d,e,f,g,h,i) //0 1 2 hahaha hahaha 100 100 7 8
}
func test()(int,int){
return 100,200
}