go 语言基础之语法

go 语言基础语法

演示go 语言的跨包调用及go语言的协程演示

函数的跨包调用

当函数名首字母大写字母开头,如Group1 ,那么这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这杯称为导出;标识符如果是以小写字母开头,则对包外是不可见的。但是他们在整个包的内部是可见并且可用的

跨包调用时,先使用 import 导入, 然后在 包名.函数名 进行调用

在dev_code目录下新建day2包,然后在day2包中,新建main包和tool 包。

在main包中新建文件main.go

在tool包中新建文件hello.go

image-20220315141637657

编写hello.go 和main.go  ,注意,需要保存

hello.go

自定义函数,将函数名首字母大写

//归属到tool 包里
package tool

// 导入
import "fmt"

// 自定义函数,大写表示函数权限为公共,可以跨包 被调用
// 函数名定义为小写,同一个包中可以直接调用,挎包不可被调用。
func Hello() {
	fmt.Println("hello world")
}

main.go

使用import 导入,在使用功能 包名.函数名 调用

// 主程序需要归属到main 包
package main

import "dev_code/day2/example1/tool"

// 主函数
func main() {
	tool.Hello()
}

此时运行main.go ,成功输出结果

image-20220315141825573

演示go的 goroute

go语言相比于其他的语言,多了个协程

image-20220315145032095

新建example2 包,example2 包下新建goroute包,gouroute包下新建文件goroute.go文件

example2 包下新建mainb包,main 包 下新建main.go 文件

goroute.go

package goroute

import "fmt"

// 定义a 为整数
func Test_goroute(a int) {
	fmt.Println(a)
}

main.go

package main

import "dev_code/day2/example2/goroute"

//协程:可以处理高并发请求
func main() {
	for i := 0; i < 100; i++ {
		// 使用go 就是表示调用goroute 功能,使用协程去执行
		go goroute.Test_goroute(i)
	}
}

执行main.go ,可以看到,执行速度很快。而且,从执行输出结果可以看出是并行的

image-20220316212416338

GO语言基础语法

GO标记

go 程序可以有多个标记组成,可以是关键字,表示符, 常量,字符串,符号。

fmt
.
Println
(
"Hello,world!"
)

行分隔符

在GO程序中,一行代表一个语句结束。每个语句不需要向c 家族中其他语言一样以分号;结尾,因为这些工作都将有GO编译器自动完成.

如果你打算将多个语句写在同一行,它们必须使用 ; 人为区分,但在实际开发中我们不鼓励这种做法。

以下两种输出结果一致

package main

import "fmt"

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

import "fmt"

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

image-20220316214726370

注释

注释不会被编译,每一个包应该有相关注释。

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。

package main

import "fmt"

func main() {
	// 这是单行注释

	/*  这是多行注释
	这是多行注释*/
	fmt.Println("演示注释")
}

标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(A-Z和a-z)数字(0-9)下划线_ 组成的序列,但是第个字符必须是字母或下划线而不能是数字。

以下是有效的标识符

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

以下是无效标识符

  • 1ab(以数字开头)
  • case(Go 语言的关键字)
  • a+b(运算符是不允许的)

字符串连接

Go 语言的字符串可以通过 + 实现:

package main

import "fmt"

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



//输出结果为 helloworld

image-20220316215556571

可以使用 逗号, 在同一行输出多个不同类型 的 值

package main

import "fmt"

func main() {
	fmt.Println("hello", 10)
}


//输出 hello 10

image-20220316215811564

关键字

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

appendboolbytecapclosecomplexcomplex64complex128uint16
copyfalsefloat32float64imagintint8int16uint32
int32int64iotalenmakenewnilpanicuint64
printprintlnrealrecoverstringtrueuintuint8uintptr

程序一般由关键字、常量、变量、运算符、类型和函数组成

程序中可能会使用到这些分隔符:括号 (),中括号 [] 和大括号 {}。

程序中可能会使用到这些标点符号:.、,、;、: 和 …。

package main

import "fmt"

const (
	a = iota //0  ioat值默认从0 开始
	b        //1
	c        //2
)

func main() {
	fmt.Println(a, b, c)
}

Go 语言的空格

Go 语言中变量的声明必须使用空格隔开,如:

var age int;

语句中适当使用空格能让程序更易阅读。

无空格:

fruit=apples+oranges;

在变量与运算符间加入空格,程序看起来更加美观,如:

fruit = apples + oranges;

格式化字符串

Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串:

package main

import "fmt"

// 定义两个变量,name 为字符串类型, age 为整型
var name string = "zhangsan"
var age int = 10

func main() {
	// 字符串 使用 %s,  数字 使用%d
	fmt.Printf("名字是:%s,年龄是:%d", name, age)
}

image-20220316224107009

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值