iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >深入了解Go语言的基本语法与常用函数
  • 830
分享到

深入了解Go语言的基本语法与常用函数

2024-04-02 19:04:59 830人浏览 薄情痞子
摘要

目录一、基本语法标识符命名规范变量的定义与使用定义常量二、常用函数main 函数与 init 函数fmt 包及其函数一、基本语法 标识符命名规范 Go 是区分大小写的,标识符的命名包

一、基本语法

标识符命名规范

Go 是区分大小写的,标识符的命名包含了 Go 中变量、常量、函数、结构体、接口以及方法的命令,Go 限定任何需要对外暴露的标识符必须以大写字母开头,不需要对外暴露的标识符则需要以小写字母开头。

标识符以大写开头,就表示可以被外部包的代码引用,称之为导出。如果以小写字母开头,那么对外就是不可见的,但是在整个包的内部是可见且可用的。

标识符的命名应该避免与 Go 中内置的关键字冲突。

变量的命令规范

采用驼峰命名法,首字母根据访问控制大写或者小写

var username string
var url string

常量的命名规范

常量的名称全部使用大写字母组成,并且使用下划线来分隔多个词

const JUEJIN_URL = "https://juejin.cn"

枚举类型的常量

const (
    SUCCESS = "200"
    NOT_FOUND = "404"
    INTERAL_SERVER_ERROR = "500"
)

结构体的命名规范

结构体也是采用驼峰命名法,首字母的大小写根据访问控制决定

type Info stuct {
    Username string
    Age int 
}

接口命名规范

接口的命名规范与结构体的命名规范基本一致,只有一个方法的接口命名以 "er" 结尾,如 Fighter

type Fighter interface {
    fight(p []byte)(skill string, err error)
}

文件和包的命名规范

Go 文件和包的命名有小写字母组成,简短、有意义。注意 包的命名不要使用下划线或者驼峰命名。

Go 中的常用关键字

关键字说明
var定义变量
const定义常量
package
import导入包关键字
func定义函数关键字
return用于修饰函数中返回值
interface定义接口
struct定义抽象数据类型
type声明自定义类型
map声明 map 数据类型
range用于遍历
if、else、for、switch、break、case、continue、fallthrough、soto、default用于流程控制

Go 中的注释

Go 中使用 // 来注释代码,使用 来注释多行代码

变量的定义与使用

Go 中的变量有多种定义方式,可以使用关键字 var 定义变量,也可以一次定义多个变量。

使用 var 关键字定义变量

var variable_name variable_type = value

一次声明多个相同类型的变量

var variable_name1, variable_name2 variable_type

一次声明多个不同类型的变量

var (
    variable_name1 variable_type
    variable_name2 variable_type
)

使用 := 自定判断变量类型定义变量

name := "Tony"

可以省略 var 关键字

在 go-quickstart 项目下新建一个文件夹,命名为 ”01-基本语法“,在该文件夹下新建 Go 文件 ex1.go

package main

import "fmt"

func main() {

   // 使用 var 关键字定义变量
   var name string = "tony"
   fmt.Println("name 变量的值为:", name)

   // 使用 var 定义多个相同类型的变量
   var username, address, phone string
   username = "Tony"
   address = "NY"
   phone = "010-111222"
   fmt.Println("name、address、phone 三个变量的值分别为:", username, address, phone)

   // 使用 var 定义多个不同类型的变量
   var (
      user_name    string
      user_age     int
      user_balance float64
   )

   user_name = "tony"
   user_age = 40
   user_balance = 1000000.0
   fmt.Println("user_name, user_age, user_balance 三个变量的值分别为:", user_name, user_age, user_balance)

   // 使用自动类型推断方式定义变量
   user_id := 1000
   fmt.Println("user_id 变量的值为:", user_id)
}

执行上述代码,输出结果如下:

name 变量的值为: tony
name、address、phone 三个变量的值分别为: Tony NY 010-111222
user_name, user_age, user_balance 三个变量的值分别为: tony 40 1e+06
user_id 变量的值为: 1000

使用 := 定义变量是 Go 中最常使用的变量定义的方式,但是这种方式定义的变量只能在局部代码块中使用,不能再全局使用

定义常量

常量的定义使用 const 关键字,常量一旦被定义就无法修改

package main

import "fmt"

func main() {

   // 定义常量使用 const 关键字,一旦被定义,不可修改
   const URL = "Https://juejin.cn"

   fmt.Println("常量 URL 的值为:", URL)

   // 一次定义多个常量
   const (
      HOST = 3306
      APP  = "/go"
   )

   fmt.Println("HOST 和 APP 两个常量的值为:", HOST, APP)

   // 定义常量时,如果只有第一个常量赋值了,后面常量没有赋值情况下,默认的值等于第一个常量赋的值
   const (
      NUM = 100
      COUNT
      QUANTITY
   )
   fmt.Println("NUM,COUNT,QUANTITY 的值分别为:", NUM, COUNT, QUANTITY)
}

执行上述代码,输出结果如下:

常量 URL 的值为: https://juejin.cn
HOST 和 APP 两个常量的值为: 3306 /go
NUM,COUNT,QUANTITY 的值分别为: 100 100 100

二、常用函数

main 函数与 init 函数

main 函数

在上面的代码中,所有的代码都是写在使用 func 关键字定义的 main 函数中,在 Go 中 main 函数是入口函数,类似 Java 中的 main 函数。

init 函数

Go 中 init 函数负责 package 的初始化,init 函数:

  • 在 main 函数前执行,自动被调用,初始化 package 中的变量等
  • init 函数不能被其他函数调用
  • 每个包可以有多个 init 函数,同一个包的 init 函数执行顺序与 init 函数定义的位置有关
  • 包中每个源文件也可以又有多个init 函数
  • 不同包中的 init 函数按照导入的依赖关系决定 init 函数的执行顺序
  • init 函数没有返回值
// filename ex4.go

package main

import "fmt"

func init() {
   fmt.Println("这是第一个 init 函数")
}

func init() {
   fmt.Println("这是第二个 init 函数")
}

func init() {
   fmt.Println("这是第三个 init 函数")
}

func main() {

   // 常用函数
   fmt.Println("这是 main 函数")

}

执行上述代码,输出记过如下:

这是第一个 init 函数
这是第二个 init 函数
这是第三个 init 函数
这是 main 函数

调用第一个和第三个 init 函数的位置,再次执行改代码

这是第三个 init 函数
这是第一个 init 函数
这是第二个 init 函数
这是 main 函数

同一个文件中 init 函数执行的顺序与位置有关,但是都会先于 main 函数执行。

init 函数 VS main 函数

main 函数和 init 函数定义时都不能有任何返回值,且都是有 Go 自动调用的。

main 函数只能定义一个,init 函数可以定义多个。

这两个函数官方只能定义在测试环境中使用,生产环境不推荐使用。

fmt 包及其函数

上述代码中除了 main 函数还涉及到了打印相关的函数,这些函数都在 fmt 包下,共有三个输出函数

  • Println:自动换行,且一次输出多个值时,多个值中间会带有空格
  • Print:不自动换行,多个值连续输出,没有空格
  • Printf:格式化输出
// filename ex5.go


package main

import "fmt"

func main() {

   // 常用函数
   name_01 := "tony1"
   name_02 := "tony2"
   name_03 := "tony3"
   fmt.Println("自动换行,多个值之间会有空格", name_01, name_02, name_03)
   fmt.Print("不自动换行,多个值之间没有空格", name_01, name_02, name_03)
   fmt.Print("\n")
   fmt.Printf("%v, %v, %v 格式化输出", name_01, name_02, name_03)

}

执行上述代码,输出结果如下:

自动换行,多个值之间会有空格 tony1 tony2 tony3
不自动换行,多个值之间会有空格tony1tony2tony3
tony1, tony2, tony3 格式化输出

格式化输出时 %v 表示获取变量的值。

以上就是深入了解Go语言的基本语法与常用函数的详细内容,更多关于Go语言 语法 函数的资料请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 深入了解Go语言的基本语法与常用函数

本文链接: https://www.lsjlt.com/news/164353.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入了解Go语言的基本语法与常用函数
    目录一、基本语法标识符命名规范变量的定义与使用定义常量二、常用函数main 函数与 init 函数fmt 包及其函数一、基本语法 标识符命名规范 Go 是区分大小写的,标识符的命名包...
    99+
    2022-11-13
  • Go语言的基本语法与常用函数是什么
    今天小编给大家分享一下Go语言的基本语法与常用函数是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、基本语法标识符命名...
    99+
    2023-07-02
  • 深入了解Go语言中sync.Pool的使用
    目录1. 简介2. 问题引入2.1 问题描述2.2 解决方案3. 基本使用3.1 使用方式3.2 使用例子    4.使用注意事项4.1 需要...
    99+
    2023-05-15
    Go语言 sync.Pool使用 Go语言 sync.Pool Go sync.Pool
  • Go语言基础函数基本用法及示例详解
    目录概述语法函数定义一.函数参数无参数无返回有参数有返回函数值传递函数引用传递可变参数列表 无默认参数函数作为参数二、返回值多个返回值跳过返回值匿名函数匿名函数可以赋值给一个变量为函...
    99+
    2022-11-12
  • 一文了解Go语言中的函数与方法的用法
    目录函数定义语法函数定义示例无返回值函数单一返回值函数多返回值函数方法(Method)定义方法(Method)示例基本类型结构体类型函数定义语法 与大部分语言一致,Go语言中的函数定...
    99+
    2022-11-13
  • 深入理解Go语言文档中的strings.Split函数
    深入理解Go语言文档中的strings.Split函数,需要具体代码示例在Go语言中,字符串操作是非常常见的需求。其中,strings包是Go语言提供的一个标准包,提供了丰富的字符串处理函数。其中,strings.Split函数是其中一个常...
    99+
    2023-11-04
    字符串 理解 编程关键词:Go语言 Split函数
  • R语言strsplit函数用法深入详解
    1、R语言strsplit用于分割字符串 创建测试数据 > test <- "aa bb cc dd ee ff" ##创建测试数据 > test [1] "a...
    99+
    2022-11-11
  • 想更深入地了解Go语言中的函数,应该如何学习?
    随着Go语言的日益流行,越来越多的程序员开始关注这门语言。而函数作为任何一门语言的重要部分,对于学习Go语言也是至关重要的。在本文中,我们将探讨如何更深入地学习Go语言中的函数。 一、Go语言函数的基础知识 在Go语言中,函数是一种基本的...
    99+
    2023-08-13
    数据类型 教程 函数
  • C语言深入讲解函数的使用
    目录关于函数1. 函数的定义形式2. 函数的声明3. 返回语句4. 函数参数4.1 形式参数(传值调用)4.2 实际参数(传址调用)4.3 无参数5. 函数的调用5.1 嵌套调用5....
    99+
    2022-11-13
  • 深入了解Go语言在大数据开发中的优势与不足
    Go语言作为一门高效、安全、简洁的编程语言,具有在大数据开发中的优势。然而,与其他语言相比,它也有一些不足之处。在本文中,我们将深入探讨Go语言在大数据开发中的优势和不足。 一、Go语言在大数据开发中的优势 高效性 Go语言的编译速度非...
    99+
    2023-08-17
    大数据 开发技术 http
  • C语言深入分析函数与宏的使用
    目录一、函数与宏二、宏的妙用三、小结一、函数与宏 宏是由预处理器直接替换展开的,编译器不知道宏的存在函数是由编译器直接编译的实体,调用行为由编译器决定多次使用宏会导致最终可执行程序的...
    99+
    2022-11-13
  • C语言深入讲解函数参数的使用
    目录一、函数参数二、程序的顺序点三、小结-上四、调用约定五、可变参数六、可变参数的限制七、小结-下一、函数参数 函数参数在本质上与局部变量相同在栈上分配空间函数参数的初始值是函数调用...
    99+
    2022-11-13
  • Go语言入门之函数的定义与使用
    目录1.前言2.函数声明2.1 函数例子2.2 Go 函数支持多返回值2.3 变量函数2.4 闭包2.5 递归3.总结1.前言 函数是一段代码的片段,包含连续的执行语句,它可以将零个...
    99+
    2022-11-11
  • 深入了解C语言中常见的文件操作方法
    目录1.为什么使用文件2.什么是文件2.1文件分类2.2 文件名3.文件的打开和关闭3.1文件指针3.2 如何使用文件指针4.文件的读写1.为什么使用文件 大家在写程序的时候有没有一...
    99+
    2022-11-13
  • 深入了解C语言中的字符串和内存函数
    目录1. 前言2. 求字符串长度2.1 strlen3. 长度不受限制的字符串函数3.1 strcpy3.2 strcat3.3 strcmp4. 长度受限制的字符串函数4.1 st...
    99+
    2022-11-13
    C语言 字符串 内存函数 C语言 字符串 C语言 内存函数
  • go语言中基本数据类型及应用快速了解
    目录整数特殊的整数类型如果想确定int和uint的大小溢出浮点数复数布尔值字符串字符串的“长度”与遍历字符串的做法字符串的“长度”遍历...
    99+
    2022-11-13
  • 深入了解Go语言中的关键字和Windows数据类型。
    Go语言是一门快速、简洁、安全的编程语言。它具有高效的并发性、垃圾回收机制和强大的类型系统。在这篇文章中,我们将深入了解Go语言中的关键字和Windows数据类型,以帮助您更好地了解这门语言。 一、Go语言中的关键字 Go语言中的关键字是指...
    99+
    2023-09-12
    windows 数据类型 关键字
  • R语言基本画图函数与多图多线的用法
    常用统计作图函数汇总 plot() hist() 直方图 stem() 茎叶图 boxplot() 箱线图(盒形图) coplot() 协同图 qqnorm() 正态qq图 qqpl...
    99+
    2022-11-11
  • 深入理解Go语言文档中的flag.StringVar函数解析命令行参数
    在Go语言中,我们有时需要通过命令行传递参数给程序。为了方便用户设置参数,Go语言提供了flag包来解析命令行参数。其中flag.StringVar函数是flag包中最常用的函数之一,它可以帮助开发者快速的定义并解析命令行参数。本文将深入分...
    99+
    2023-11-03
    Go语言 命令行参数 flagStringVar
  • Go语言中的函数与方法怎么使用
    这篇文章主要介绍了Go语言中的函数与方法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Go语言中的函数与方法怎么使用文章都会有所收获,下面我们一起来看看吧。函数定义语法与大部分语言一致,Go语言中的函数...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作