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 个关键字或保留字:

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

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

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

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

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

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


复制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

posted @   知己一语  阅读(241)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示