Hello world实例
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
编译 + 运行
go run hello.go
Hello, World!
go run 做了编译和执行两动作,编译会生成 hello 文件,执行完成后此文件会被删除。
web展示
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!")
})
fmt.Println("Please Visit - http://localhost:8899/")
http.ListenAndServe(":8899", nil)
}
Golang 中常见的变量定义方法如下:
1、var 定义变量
var 变量名 类型 = 表达式(类型可以不需要添加,自带类型推导)
package main
import "fmt"
func main(){
//1.变量的声明
var age int
//2.变量的赋值
age = 18
//3.变量的使用
fmt.Println("age = ",age);
//声明和赋值可以合成一句:
var age2 int = 19
fmt.Println("age2 = ",age2);
// var age int = 20;
// fmt.Println("age = ",age);
}
2、类型推导方式定义变量
a
在函数内部,可以使用更简略的
:=
方式声明并初始化变量。
注意:
短变量只能用于声明局部变量,不能用于全局变量的声明
变量名 := 表达式(注意:冒号和=要挨着 冒号前和等于号后空格 美观)
错误展示:

package main
import "fmt"
func getuser() (string, int) {
return "远坂凛",10
}
func main(){
// var username = "卫宫士郎"
// fmt.Println(username)
// var (
// username string = "卫宫士郎"
// age int = 20
// sex string = "男"
// )
// fmt.Println(username,age,sex)
// 变量命名法
// 变量不能重复命名,但是可以重复赋值
var username,age = getuser()
fmt.Println(username,age)
// 短变量命名法
a,b,c := 19,20,"archer"
fmt.Printf("%v.%v,%v",a,b,c)
}
支持一次性声明多个变量(多变量声明)
package main
import "fmt"
//全局变量:定义在函数外的变量
var boyname = "卫宫士郎"
var boyage = 19
//全局变量一次性声明:
var (
girlage = 20
girlname = "远坂樱"
)
func main(){
//定义在{}中的变量叫:局部变量
//第一种:变量的使用方式:指定变量的类型,并且赋值,
var num int = 22
fmt.Println(num)
//第二种:指定变量的类型,但是不赋值,使用默认值
var num2 int
fmt.Println(num2)
//第三种:如果没有写变量的类型,那么根据=后面的值进行判定变量的类型 (自动类型推断)
var num3 = "Archer"
fmt.Println(num3)
//第四种:省略var,注意 := 不能写为 =
sex := "男"
fmt.Println(sex)
fmt.Println("------------------------------------------------------------------")
//声明多个变量:
var a,b,c int
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
var d,name,e = 10,"sabar",169
fmt.Println(d)
fmt.Println(name)
fmt.Println(e)
garde,height := 6.9,100.6
fmt.Println(garde)
fmt.Println(height)
fmt.Println(boyname)
fmt.Println(boyage)
fmt.Println(girlage)
fmt.Println(girlname)
}
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用
匿名变量
(anonymous variable)。 匿
名变量用一个下划线
_
表示,例如:

package main
import "fmt"
func varinfo()(string,int){
return "远坂凛",21
}
func main() {
name,age := varinfo()
fmt.Printf("MY name is %v,age is %v",name,age)
}

package main
import "fmt"
func varinfo()(string,int){
return "远坂凛",21
}
func main() {
_,age := varinfo()
fmt.Printf("age is %v",age)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
注意事项:
1
、函数外的每个语句都必须以关键字开始(var、
const
、
func
等)
2
、
:=不能使用在函数外。
3
、
_
多用于占位,表示忽略值。
fmt 包、Print、Println、Printf
Go
中要打印一个值需要引入
fmt
包
import "fmt"fmt 包里面给我们提供了一些常见的打印数据的方法,比如: Print 、 Println 、 Printf , 在我们实际开发中 Println 、 Printf 用的非常多。
1、Print 和 Println 区别:
一次输入多个值的时候 Println 中间有空格 Print 没有

Println 会自动换行,Print 不会

2、Println 和 Printf 区别:
Printf
是格式化输出,在很多场景下比
Println
更方便,举个例子:

package main
import "fmt"
func main() {
var(
name = "卫宫士郎"
age = 19
servant = "sabar"
)
fmt.Println("我的名字是:" ,name,"年龄:",age,"servant为:",servant)
fmt.Printf("我的名字是%v,年龄为%v,servant为%v",name,age,servant)
}
Printf 中的占位符与后面的数字变量一一对应。例如: %d 是占位符,表示数字的十进制表示。
Go 语言中的注释
行注释 // VSCode快捷键:ctrl+/ 再按一次取消注释
块注释(多行注释) /**/ VSCode快捷键:shift+alt+a 再按一次取消注释
注意:块注释中不可以嵌套块注释