酆叔のBlog

  • 首页
  • 分享技术
  • 八卦黑料
  • 生活日常
  • 日记
酆叔のBlog
上辈子作恶多端,这辈子早起上班。
  1. 首页
  2. IT技术
  3. 正文

GO的一些基本语法

2024年5月9日 716点热度 0人点赞 0条评论

基本语法

package main

import "fmt"

func main() {
   fmt.Println("Hello 世界!")
}

package关键字代表的是当前go文件属于哪一个包,启动文件通常是main包,启动函数是main函数,在自定义包和函数时命名应当尽量避免与之重复。
import是导入关键字,后面跟着的是被导入的包名。
func是函数声明关键字,用于声明一个函数。
fmt.Println("Hello 世界!")是一个语句,调用了fmt包下的Println函数进行控制台输出。

包

在Go中,程序是通过将包链接在一起来构建的,也可以理解为最基本的调用单位是包,而不是go文件。包其实就是一个文件夹,包内共享所有源文件的变量,常量,函数以及其他类型。包的命名风格建议都是小写字母,并且要尽量简短。

导入

创建一个example包,包下有如下函数

package example
import "fmt"
func SayHello() {
   fmt.Println("Hello")
}

在main函数中调用

package main
import "example"
func main() {
   example.SayHello()
}

还可以给包起别名

package main
import e "example"
func main() {
   e.SayHello()
}

批量导入时,可以使用括号()来表示

package main
import (
   "fmt"
   "math"
)
func main() {
   fmt.Println(math.MaxInt64)
}

或者说只导入不调用,通常这么做是为了调用该包下的init函数。

package main
import (
   "fmt"
    _ "math" // 下划线表示匿名导入
)
func main() {
   fmt.Println(1)
}

导出

导出和访问控制是通过命名来进行实现的,想要对外暴露一个函数或者一个变量,只需要将其名称首字母大写即可。
不对外暴露的话,只需将名称首字母改为小写即可,对外暴露的函数和变量可以被包外的调用者导入和访问,如果是不对外暴露的话,那么仅包内的调用者可以访问,外部将无法导入和访问。

私有

go中约定,一个包内名为internal 包为私有包,其它的包将无法访问私有包中的任何东西。

注释

Go支持单行注释和多行注释,注释与内容之间建议隔一个空格。

标识符

标识符就是一个名称,用于包命名,函数命名,变量命名等等,命名规则如下:

  • 只能由字母,数字,下划线组成
  • 只能以字母和下划线开头
  • 严格区分大小写
  • 不能与任何已存在的标识符重复,即包内唯一的存在
  • 不能与Go任何内置的关键字冲突

运算符

go语言中没有选择将~作为取反运算符,而是复用了^符号,当两个数字使用^时,例如a^b,它就是异或运算符,只对一个数字使用时,例如^a,那么它就是取反运算符。

Go语言中没有自增与自减运算符,它们被降级为了语句statement,并且规定了只能位于操作数的后方,所以不用再去纠结i++和++i这样的问题。

a++ // 正确 
++a // 错误 
a-- // 正确

还有一点就是,它们不再具有返回值,因此a = b++这类语句的写法是错误的。

标签: GO
最后更新:2024年5月9日

酆叔

上辈子作恶多端,这辈子早起上班。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
2025/05/15 周四 晴 2025/05/12 周一 晴 2025/05/08 周四 多云 2025/05/07 周三 阵雨 2025/05/06 周二 阵雨 2025/04/30 周三 多云
GO 常量和变量 PHP 常量用法 PHP 抽象类 PHP new的用法 注册树模式 PHP8特性
腾讯云
又拍云
订阅
订阅

COPYRIGHT © 2024 酆叔のBlog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2023016219号