【Go学习笔记】01-HelloWorld
创始人
2025-06-01 06:21:54

最近学一下Go语言,这是我的个人学习笔记,如果各位看官们发现哪里有不正确的地方,欢迎补充和指导
👉 Github Repositroy:my-go-learn

Go中的“包”

package main
  • 使用 package 声明
  • 允许下划线
  • 可以和所属文件夹名字不同,但该文件夹下所有go文件中的包声明需一致
// 单个引用
import "fmt"
// 批量引用
import ("strings"_ "bytes" // 匿名引用
)
  • 使用import 引用
  • 允许批量引用
  • 允许匿名引用

如果下文不使用这个包提供的函数(方法),那么需要删除这个包引用,否则会报错。但如果需要用到这个包的 init 函数而不使用其他函数的话,那么可以用 _ 方式匿名引用

常用数据类型

  • string 字符串, 包装类: strings
  • int, int8, int16, int32, int64 带符号整数
  • uint, uint8, uint16, uint32, uint64 无符号整数
  • float32, float64 浮点数
  • bool 布尔型
  • byte = uint8, 字节,包装类:bytes
  • rune = int32, 可以理解为1个字符
var str1 = "你好,世界!"
fmt.Printf("%s size = %d, len = %d\r\n", str1, len(str1), utf8.RuneCountInString(str1))

输出:

你好,世界! size = 18, len = 6
  • 可以使用 len(xxx)方法获取字符串字节长度

  • codeType.RuneCountInString(xxx)可以获取字符串的字符数量

变量声明

// 单个变量声明
var a int = 1 //显式类型声明
var b = 2     //隐式类型声明 类型为int
var c = "hi"  //隐式类型声明 类型为string
var d = 1.2   //隐式类型声明 类型为float64// 批量变量声明
var (aa = 1bb = "Hello"
)func foo(){// 局部变量声明cc := "Hi"println(cc)
}
  • 变量的首字母控制访问性:首字母大写包外可访问(如果是全局变量)
  • Go支持类型推断
  • 使用驼峰命名法
  • 如果变量声明了但没有使用,则编译不过,会报错
  • 在同一个作用域下,变量只能声明一次。
  • 常量的声明使用 const

如果在函数外部声明了一个变量a, 函数内部也声明了变量a, 那么在函数内部作用域下,其内部定义的a有效。

函数声明

// introduceMyself
// demo: 带参函数,并且具有一个返回值,此函数只有本文件内可用
func introduceMyself(name string, age int) string {res := fmt.Sprintf("My name is %s, ", name)res += fmt.Sprintf("and I am %d years old.", age)return res
}// GetMySelfInformation 获取个人信息,返回名字和年龄
// 不带参函数,具有两个返回值,此函数全局可用
func GetMySelfInformation() (string, int) {return "Jelin", 25
}
  • 返回值允许有多个
  • 首字母大写包外可访问,否则只允许包内访问

相关内容

热门资讯

北京市首辆无偿献血宣传巴士发车 (来源:千龙网)昨天(28日),北京市首辆无偿献血宣传巴士发车。未来一个月,无偿献血公益广告将在4路...
八部门联合发布21条举措——完... 为助力形成“陆海内外联动、东西双向互济”对外开放新格局,完善西部陆海新通道金融服务体系,中国人民银行...
国务院国资委:完善国有资产管理... 转自:财联社【国务院国资委:完善国有资产管理监督体制机制 研究制定国有企业履行战略使命评价制度】财联...
2025,我见证的中外合作故事... 来源:人民日报海外版2025年,中国元首外交精彩纷呈、高潮迭起、成果丰硕。每一次握手,每一次讲话,每...
公共数据加速“跑起来” 数据赋...   海关总署依托跨境贸易通关数据,助力中小微企业降低融资成本;物流数据开放互联有效提升多式联运组织效...