Go——基础语法

目录

Hello World!

变量和常量

变量交换

匿名变量

常量

iota——特殊常量

基本数据类型

数据类型转换

运算符

算数运算符

 关系运算符

逻辑运算符

位运算符号

​编辑

 赋值运算符

 输入输出方法

流程控制

函数

 可变参数类型

值传递和引用传递


Hello World!

在电脑下载好GoLand后运行并创建一个go文件输入如下代码,导入一个系统包fmt用来输出。

这里的入口函数默认也是main函数。

import "fmt"

func main() {
	fmt.Println("hello world")
}

变量和常量

定义变量使用var关键字

变量定义的标准格式如下,如果不指定值的话就是默认值,变量明明使用驼峰命名法。

var 变量名 变量类型

var (
    name string
    age int
    addr string
)
import "fmt"

func main() {
	var (
		name string = "北岭山脚鼠鼠"
		age  int    = 21
		addr string = ""
	)
// 语法糖,可以自动推导类型,但必须是之前没有出现过的变量
name: ="北岭山"
age:= 21
	fmt.Println(name)
}
func main() {

	name := "北岭山脚鼠鼠"
	age := 21
	addr := ""

	fmt.Println(name, age, addr)
	fmt.Printf("name:%T,age:%T\n", name, age) //查看类型
	fmt.Printf("name:%s,age:%d\n", name, age) //获取值
	fmt.Printf("name:%p,age:%p", &name, &age) //获取地址

}

变量交换

func main() {
	var a int = 100
	var b int = 200
	//传统交换
	//tmp := a
	//b = tmp
	//a = b

	//go交换
	a, b = b, a
	fmt.Print(a, b)
}

匿名变量

可以用于接收任何类型的变量,但是后续都无法使用。

func test() (int, int) {
	return 100, 200
}

func main() {
	a, _ := test()
	_, b := test()
	fmt.Print(a, b)  //输出100,200
}

常量

类型:bool ,int ,float:32,float:64,string,复数型 

把var 改成const就是常量的定义方式。

	const url string = "www.yhy2002.com" //显式定义
	const url2 = "yhy2002.com"           //隐式定义
	url3 := "hyh2002.com"
	
	const a,b,c="y","h","y"
	fmt.Print(url3)

iota——特殊常量

 

func main() {
		const (
		a = iota
		d
		e
		b = iota
		f
		c = iota
	)
	const (
		g=iota
	)
	fmt.Print(a, b, c,g)
}

得到结果如下

0,3,5,0

基本数据类型

整型如下有

Go——基础语法_第1张图片

别名

Go——基础语法_第2张图片

 浮点数有如下

Go——基础语法_第3张图片

func main() {
	const (
		a bool    = true
		b int     = 5
		c float64 = 5.2
		d string  = "北岭山脚鼠鼠"
	)

	fmt.Printf("%t,%d,%.6f,%s", a, b, c, d+d)
}

数据类型转换

并且只能由范围小的转到范围大的,大转小会有精度丢失

func main() {
	a := 3
	c := float64(a)
	fmt.Print(c)
}

运算符

算数运算符

Go——基础语法_第4张图片

 关系运算符

Go——基础语法_第5张图片

逻辑运算符

Go——基础语法_第6张图片

位运算符号

Go——基础语法_第7张图片

 赋值运算符

Go——基础语法_第8张图片

 输入输出方法

	var a int
	var b float64

	fmt.Println() //打印并换行
	//fmt.Printf()  //格式化输出
	fmt.Print() //打印输出
	//
	fmt.Scanln(&a, &b) //
	fmt.Scanf("%d,%f", &a, &b) //接收格式化输入 作业
	fmt.Scan(&a) //接收输入作业

流程控制

if 条件1 {

}else if 条件2{

}else {

}


switch 条件1{  //默认case最后自带break
    case 值1:

        fallthrough  //不管下一个条件是否满足都会执行下一条语句
    case 值2:

    case 值3:

    default:

}

	for i:= 1;i<=5;i++{
        continue
        break
	}
//遍历string
	str := "abcd"
	len := len(str)
	for i := 0; i < len; i++ {
		fmt.Printf("%c", str[i])
	}


	for i, v := range str {
		fmt.Printf("%d,%c", i, v)
	}

函数

Go——基础语法_第9张图片


func get(a int, b string) (string,int){
	fmt.Printf("yhy")
	return "yhy",231
}

 可变参数类型

func get(a ...int) (string, int) {
	fmt.Printf("yhy")
	return "yhy", 231
}

值传递和引用传递

Go——基础语法_第10张图片 

 

Go——基础语法_第11张图片

你可能感兴趣的:(Python,golang,开发语言,后端)