likes
comments
collection
share

前端视角下的Go语法学习:基于 go 打印 hello-world

作者站长头像
站长
· 阅读数 23

今日话题

使用 go 打印 hell world

作者:云层上的光

时间:2024年6月20日 18时04分14秒

主线任务

一、创建项目

1、创建 demo-hello-world 文件夹

mkdir demo-hello-world

前端视角下的Go语法学习:基于 go 打印 hello-world

2、进入 demo-hello-world 文件夹,声明 go.mod 文件

go mod init demo-hello-world

前端视角下的Go语法学习:基于 go 打印 hello-world

二、打印 hello world

1、新建 main.go 文件

前端视角下的Go语法学习:基于 go 打印 hello-world

2、修改 mian.go 文件

// 指明当前文件属于哪个包
package main

// 导入 fmt 包
import "fmt"

// 创建 main 方法
func main() {
	// 打印 “你好,世界”
	fmt.Println("你好,世界")
}

3、运行项目

前端视角下的Go语法学习:基于 go 打印 hello-world

4、终端输出打印

前端视角下的Go语法学习:基于 go 打印 hello-world

支线任务

一、package 是干什么的?

在 Go 语言中,package 关键字用于声明当前文件所属的包。每个 Go 源码文件都必须以 package 声明开头,指出该文件属于哪个包。2017年在学PHP的时候在后端包的概念这里绕晕了(白话就是:前端的模块化)

对比前端,以 Vue项目举例,功能如下:

1、新建 utils/indexjs 文件

// 定义了add 函数 并且使用了esmodules 模块化导出
export function add(a,b){
    alert(a+b)
}

2、根目录 main.js 使用 utils 文件中 index.js

// 导入
import {add} from "./utils/index.js"

// 调用函数使用
console.log(add(1,2));

3、上面的功能用后端 package 来实现一遍:

前端视角下的Go语法学习:基于 go 打印 hello-world

代码如下:

package utils

import "fmt"

// 这里的 Add 要大写
func Add() {
	fmt.Println("add")
}

4、main.go 文件中调用 Add 方法(注意这里一定要是大写的,应该要给外部调用)

前端视角下的Go语法学习:基于 go 打印 hello-world

5、运行项目

前端视角下的Go语法学习:基于 go 打印 hello-world

前端视角下的Go语法学习:基于 go 打印 hello-world

二、import 用于包导入?

1、当前文件只导入一个包时:

前端视角下的Go语法学习:基于 go 打印 hello-world

2、如果导入多个包,用 () 包裹起来

前端视角下的Go语法学习:基于 go 打印 hello-world

3、假设 getList 是 app.js 和 user.js 模块中导出的函数,那么前端中 as 功能:

import {getList as getAppList} from "@/api/app.js"
import {getList as getUserList } from "@/api/user.js" 

4、在 go 实现如下:

前端视角下的Go语法学习:基于 go 打印 hello-world

三、如果包的层级越建越深应该怎么确定包的导入路径呢?

1、如果包的层级越来越深,是直接导入 "demo-hello-world/utils" 还是什么结果呢?

前端视角下的Go语法学习:基于 go 打印 hello-world

2、验证 index 是否是省略文件:

前端视角下的Go语法学习:基于 go 打印 hello-world

3、得出结论,和 index 无关

前端视角下的Go语法学习:基于 go 打印 hello-world

四、fmt 作用是?

1、fmt 包 好比 utils 的工具包一样,它是 go 的内置包 提供一些基础的 API

前端视角下的Go语法学习:基于 go 打印 hello-world

2、类比前端的 window

前端视角下的Go语法学习:基于 go 打印 hello-world

五、定义方法用 func

1、这玩意语法,在定义函数的时候我总是把 func 写成 function,前端代码的肌肉记忆

function main(){
  alert("定义了一个main方法")
}

2、go 中优势是比前端少几个单词,可以很好的保护手关节

func main() {
	// 打印 “你好,世界”
	fmt.Println("你好,世界")
}

六、go的入口程序是 main 方法?

1、go 中确实规定了需要一个 main 包,一般也会直接定义在 main 文件中

前端视角下的Go语法学习:基于 go 打印 hello-world

2、那是否其他文件也可以定义 main 方法

前端视角下的Go语法学习:基于 go 打印 hello-world

3、小写命名的方法就好比是前端的私有属性方法,

const map = {
  // 一般会有不成文的规定为 内部私有属性 不希望外部调用
  _add(){
    
  }
}

4、那我就好奇 大写的是给外部使用 这里两个方法会冲突吗?

前端视角下的Go语法学习:基于 go 打印 hello-world前端视角下的Go语法学习:基于 go 打印 hello-world

代码仓库

github.com/chuxin-cs/g…

往期内容

点击链接查看:www.yuque.com/chuxin-cs/i…

转载自:https://juejin.cn/post/7384977127219576882
评论
请登录