GO 语言学习 之 helloWorld

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

  1. go的执行过程

  2. 如何处理依赖

  3. go代码的基本结构

1. 代码示例:

Go 复制代码
package main

import "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:

Go 复制代码
// demo/demo.go
package demo

func PublicFunction() {  // 公开函数
    fmt.Println("Public function called")
    privateFunction()    // 内部可调用私有函数
}

func privateFunction() { // 私有函数
    fmt.Println("Private function called")
}
Go 复制代码
// main.go
package main

import "demo"

func main() {
    demo.PublicFunction()  // 合法:调用公开函数
    // demo.privateFunction() // 错误:无法访问私有函数

三、为什么这样设计?

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

4. 如何编译代码

bash 复制代码
# 切换到代码目录
cd /home/go/src/hello_world

# 编译
go build hello_world.go

# 运行
./hello_world

5. 如何运行代码

bash 复制代码
# 运行编译的结果上面已经提到了, 略。

# 只运行不编译
go run hello_world.go
相关推荐
代码山河8 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
紧跟先前的步伐8 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
释厄6238 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
日日大王学编程9 小时前
#Feed 流项目复盘:Redis 时间线缓存与 Outbox 消息可靠性设计
golang·1024程序员节
小嘉丶学长12 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节
小李不想当小白13 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
北冥you鱼16 小时前
Go 语言 CRUD 实战:从接口设计到真实业务场景
开发语言·后端·golang
adinnet202617 小时前
电商客服对话知识库的自学习闭环与质量演进机制
学习
lazy H17 小时前
【计算机网络】第 13 篇:NAT 和端口映射是什么?为什么本地服务外网访问不了?
java·网络·网络协议·学习·计算机网络·408
试剂界的爱马仕18 小时前
α-Cyano-4-hydroxycinnamic acid(CHCA)用作 MALDI-TOF 基质的配制与使用
大数据·人工智能·深度学习·学习