当前位置: 首页 > news >正文

GO 语言学习 之 helloWorld

        如果你不是一个新手,那么,很容易理解标题的含义。每当我们学习一门新的语言都是从hello world 开始。这个很重要,可以了解哪些东西呢?

1. go的执行过程

2. 如何处理依赖

3. go代码的基本结构

1. 代码示例:

package mainimport "fmt"func main() {fmt.Printf("Hello World")
}

2. 入口函数

  • 和其他编程语言一样,入口函数的名字也是 main
  • 无参数main 函数不能接受任何参数
  • 无返回值main 函数不能有返回值
  • 强制要求:这是 Go 语言的语法规则,违反会导致编译错误
  • func 关键字表示 一个函数的开始,并且 函数名后面的 { 必须与函数名在同一行

3. 如何使用依赖

        import 关键字告诉我们,你可以使用 fmt这个包里面的对外部包公开的方法,如示例里面的 Printf 。

        这里值得注意的是什么是依赖包对外公开的方法,在go语言里面一个包里面可以包含多个go文件,每个go文件的 package 必须属于同一个包,其中,包名不一定与他们的目录名称一致,但我建议还好一致。

一、可见性规则

  1. 大写字母开头公开的(Public),可被其他包访问。

  2. 小写字母开头私有的(Private),仅在当前包内可见。

  3. 可见性基于包:同一包内的所有文件可以互相访问私有标识符

  4. 跨包访问限制:即使在子目录中,只要包名不同,也无法访问私有标识符

二、调用规则示例

假设存在两个包:main 和 demo

// demo/demo.go
package demofunc PublicFunction() {  // 公开函数fmt.Println("Public function called")privateFunction()    // 内部可调用私有函数
}func privateFunction() { // 私有函数fmt.Println("Private function called")
}
// main.go
package mainimport "demo"func main() {demo.PublicFunction()  // 合法:调用公开函数// demo.privateFunction() // 错误:无法访问私有函数

三、为什么这样设计?

  1. 简化访问控制:无需额外的 public/private 关键字,统一通过大小写区分。
  2. 强制模块化:鼓励将包作为最小的封装单元,而非单个文件。
  3. 减少命名冲突:外部包只能访问明确暴露的接口。
  4. 隐藏实现细节:将内部逻辑封装为私有函数,仅暴露必要的公开接口

4. 如何编译代码

# 切换到代码目录
cd /home/go/src/hello_world# 编译
go build hello_world.go# 运行
./hello_world

5. 如何运行代码

# 运行编译的结果上面已经提到了, 略。# 只运行不编译
go run hello_world.go

http://www.lqws.cn/news/486109.html

相关文章:

  • 开关电源:BUCK和BOOST
  • CentOS 7.9 系统安装 Percona XtraBackup(含 xtrabackup 和 innobackupex 工具)的详细步骤
  • webpack+vite前端构建工具 - 9 webpack技巧性配置
  • 柔性PZT压电薄膜在静态力与应力实时微测量方面的应用
  • uni-app项目实战笔记23--解决首次加载额外图片带来的网络消耗问题
  • Linux(3)
  • [论文阅读] 软件工程 + 教学 | 软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践
  • 《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题
  • GetX 实现 MVVM 架构, 高效 路由管理 和 状态管理
  • Git使用总结
  • 【C++开发】CMake构建工具
  • Python打卡DAY34
  • leetcode:21. 合并两个有序链表
  • 系列一、windows中安装RabbitMQ
  • 【Comsol教程】如何求解指定范围的积分 或 在积分中去除奇异点/异常值
  • Spring JDBC配置与讲解
  • 逆向某物 App 登录接口:还原 newSign 算法全流程
  • C++ - 标准库之 <string> npos(npos 概述、npos 的作用)
  • Docker Desktop 4.42集成的MCP工具包
  • 【读代码】谷歌Agent-to-Agent (A2A) 协作框架深度解析
  • 微处理器原理与应用篇---常见基础知识(4)
  • 【教程】不同架构(armv7l等)下载Miniconda安装包
  • 65-Oracle Undo机制
  • Sass、Less、PostCSS
  • 读书笔记:《八次危机》
  • Windows防火墙指南大全:安全红线与科学替代方案
  • Kafka 原理与核心机制全解析
  • linux编译安装nginx
  • 小木的算法日记——合成两个有序链表
  • 抖音小程序开发:ttml和传统html的区别