Go 程序的国际化

Go编程基础教程:Go国际化和本地化 作者:禅与计算机程序设计艺术 1.背景介绍 什么是Go语言国际化(i18n)和本地化(l10n)? 首先,我们需要知道什么是国际化(i18n)和本地化(l10n),简单的说,国际化就是把一个产品或者服务提供给不同的国 阅读详情

在这里插入图片描述

概述

Go 是静态编译的编程语言,最近很受欢迎,因为它简单、性能好而且非常适合开发云端应用。它有强大的能够 处理国际化(i18n)和本地化(l10n)的库,比如处理字符编码、文本转换还有特定地区的文本,但这个包的 文档写得不够好。让我们来看看该怎么使用这个库,并且让我们的 Go 程序能适应不同区域。

上面说的包是 golang.org/x/text ,如果用得好,在你想让应用全球化时能帮上大忙。此包带有一系列 抽象,让你翻译消息(message)、格式化、处理单复数,还有 Unicode 等更简单。

本文包大致了解 golang.org/x/text 这个包,看它提供了什么用来格式化和本地化的工具。
本文主要内容包含两部分
1.硬编码方式
2.文件加载本地化

  • 消息(message)是某些想传达给用户的的内容。每条消息根据键(key)进行区分,这可以有很多形式。 比如可以这样创建一条消息:
p := message.NewPrinter(language.BritishEnglish)
p.Printf("There are %v flowers in our garden.", 1500)

当调用 NewPrinter 函数时,你要提供 语言标签 (language tag)。想指定语言时,就使用这些 语言标签 。有多种创建标签的方式,如下文内容。

语言简写

通过组合 Tag、Base、Script、Region、Variant, []Variant, Extension, []Extension 或 error。比如:

	fmt.Println("国家语言简写格式-------------------")

	//语言类型构建
	zh, _ := language.ParseBase("zh") // 语言
	CN, _ := language.ParseRegion("CN") // 地区
	zhLngTag, _ := language.Compose(zh, CN)
	fmt.Println(zhLngTag) // 打印 zh-CN
	fmt.Println(language.Chinese)// 打印中文缩写
	fmt.Println(language.SimplifiedChinese)// 打印中文缩写
	fmt.Println(language.TraditionalChinese)// 打印中文缩写
	fmt.Println(language.AmericanEnglish)// 打印英文缩写

如果你给了一个无效的字符串,会得到一个 Und,意思是未定义的语言标签。

fmt.Println(language.Compose(language.ParseRegion("AL"))) 
// 打印 Und-AL

更多语言类型资料,请参看
https://godoc.org/golang.org/x/text/language#Tag

中文简写的一些扩展知识

zh-CHS 是单纯的简体中文。
zh-CHT 是单纯的繁体中文。

zh-Hans和zh-CHS相同相对应。
zh-Hant和zh-CHT相同相对应。

以上时zh-CHS/zh-Hans 和 zh-CHT/zh-Hant的关系。

然后是
zh-CN 简体中文,中华人民共和国
zh-HK 繁体中文,香港特别行政区
zh-MO 繁体中文,澳门特别行政区
zh-SG 繁体中文,新加坡-
zh-SG 简体中文,新加坡
zh-TW 繁体中文,台湾

硬编码

这是使用解析包常用api的基础知识点,通过这里的样例我们可以知道大致的解析过程是怎么样的,方便后面更好的集成接口和服务。

package main
func init() {
	message.SetString(language.Chinese, "%s went to %s.", "%s去了%s。")
	message.SetString(language.AmericanEnglish, "%s went to %s.", "%s is in %s.")

	message.SetString(language.Chinese, "%s has been stolen.", "%s被偷走了。")
	message.SetString(language.AmericanEnglish, "%s has been stolen.", "%s has been stolen.")

	message.SetString(language.Chinese, "HOW_ARE_U", "%s 你好吗?")
	message.SetString(language.AmericanEnglish, "HOW_ARE_U", "%s How are you?")
}

func main() {
	// 中文版
	p := message.NewPrinter(language.Chinese)
	p.Printf("%s went to %s.", "彼得", "英格兰")
	fmt.Println()
	p.Printf("%s has been stolen.", "宝石")
	fmt.Println()
	p.Printf("HOW_ARE_U", "竹子")
	fmt.Println()


	// 英文版本
	p = message.NewPrinter(language.AmericanEnglish)
	p.Printf("%s went to %s.", "Peter", "England")
	fmt.Println()
	p.Printf("%s has been stolen.", "The Gem")
	fmt.Println()
	p.Printf("HOW_ARE_U", "bamboo")
	fmt.Println()
	}

预判断出来-处理单复数

在一些情况下,你需要根据词语的单、复数而添加多个翻译后的字符串,并且要在翻译集里 加上专门的调用才能管理好单复数的情况。子包 golang.org/x/text/feature/plural 里有个 叫 SelectF 的函数用来处理文本里语法的复数形式。

下面我给个典型的 SelectF 使用案例:

package main
func init() {
	
	//根据参数处理不同的返回语句
	message.Set(language.English, "APP_COUNT",
		plural.Selectf(1, "%d",
			"=1", "I have an apple",
			"=2", "I have two apples",
			"other", "I have %[1]d apples",
		))
}

func main() {
	fmt.Println("placehold中的条件判断-------------------")
	// 条件判断
	p.Printf("APP_COUNT", 1)
	fmt.Println()
	p.Printf("APP_COUNT", 2)
	p.Println()
}

(译者注:由于中文词语 “苹果”、“天” 既表示单数又能表示复数,而对应的英文单词是分单、复数的, 用 “汉译英” 的方式更易向读者说明这段代码的功能。因而将 原文 程序中的英文改成了中文, 希腊文换成了英文。下同。)

这里例子里,SelectF 能识别和支持几个量词,比如 zero 、 one 、 two 、 few 和 many , 此外还能匹配比较符如 >x 或 <x 。

插补字符串到消息中

还有一些情况下,你想进一步处理消息中的量词,你可以用占位符变量(placeholder variables)来 处理一些特定的语法特性。比如说,在前面我们使用复数的例子,可以改写成这样:

func init() {
    message.Set(language.English, "你迟了 %d 分钟。",
        catalog.Var("m", plural.Selectf(1, "%d",
            "one", "minute",
            "other", "minutes")),
        catalog.String("You are %[1]d ${m} late."))
}

func main() {
	p := message.NewPrinter(language.English)
	p.Printf("你迟了 %d 分钟。", 1)
        // 打印: You are 1 minute late.
	fmt.Println()
	p.Printf("你迟了 %d 分钟。", 10)
        // 打印: You are 10 minutes late.
	fmt.Println()
}

这里 catalog.Var 函数的第一个参数为字符串,即 m ,是一个特殊的标签,根据 %d 参数的值, 这个标签会被一个更准确的翻译内容替换。

格式化货币

包 golang.org/x/text/currency 处理货币格式化。

有几个有用的函数可以打印出指定地区货币的金额。下面的例子显示了几种格式化的方式:

package main

import (
	"fmt"

	"golang.org/x/text/currency"
	"golang.org/x/text/language"
	"golang.org/x/text/message"
)

func main() {
	p := message.NewPrinter(language.English)
	p.Printf("%d", currency.Symbol(currency.USD.Amount(0.1)))
	fmt.Println()
	p.Printf("%d", currency.NarrowSymbol(currency.JPY.Amount(1.6)))
	fmt.Println()
	p.Printf("%d", currency.ISO.Kind(currency.Cash)(currency.EUR.Amount(12.255)))
	fmt.Println()
}

结果会是:

➜ go run main.go
$ 0.10
¥ 2
EUR 12.26

加载消息

当你处理本地化工作时,通常你需要事先准备好译文以便应用程序能用上它们。你可以把这些译文文件 当作静态资源。有几种部署程序和译文文件的方式:

手动设置译文字符串
最简单的方式是把译文构建到你的应用程序里。你必须手动创建一个数组,包含原文和译文的条目, 在初始化时,那些消息会被加载到默认翻译集中。在你的应用里,你只能用 NewPrinter 函数切换区域。

下面这个应用,示范了如何在初始化时加载译文:

package main
func init() {
// 以上代码和以下代码都是硬编码方式
	for _, e := range msaArry {
		tag := language.MustParse(e.tag)
		switch msg := e.msg.(type) {
		case string:
			message.SetString(tag, e.key, msg)
		case catalog.Message:
			message.Set(tag, e.key, msg)
		case []catalog.Message:
			message.Set(tag, e.key, msg...)
		}
	}
}

func main() {

//调用硬编码中的消息 国际化
	p = message.NewPrinter(language.English)
	p.Printf("HELLO_WORLD","bamboo")
	p.Println()
	p.Printf("TASK_REM", 2)
	p.Println()

}

//手工 硬编码方式
var msaArry = [...]langMsg{
	{"en", "HELLO_WORLD", "%s Hello World"},
	{"zh", "HELLO_WORLD", "%s 你好世界"},
	{"en", "TASK_REM", plural.Selectf(1, "%d",
		"=1", "One task remaining!",
		"=2", "Two tasks remaining!",
		"other", "[1]d tasks remaining!",
	)},
	{"zh", "TASK_REM", plural.Selectf(1, "%d",
		"=1", "剩余一项任务!",
		"=2", "剩余两项任务!",
		"other", "剩余 [1]d 项任务!",
	)},
}

文件加载本地化

一直以来,大多数本地化的框架都会把每个语言的译文分别存于文件里,这些文件会被动态加载。你可以把 这些文件交给翻译的人,在他们搞定后,你再把译文合并到你的应用中。
为了协助这个过程,Go 作者们开发了一个命令行小工具叫 gotext
安装:go get -u golang.org/x/text/cmd/gotext
但是本人参考该资料安装并没有成功,因此另想办法处理了,该内容部分属于个人学习创新的部分。
思路如下:1.翻译的样本,2.整理成各个语言格式的json字符串文件,3.加载相关语言文件到系统中,4.根据当前语言解析出语句

本地化语言json文本文件如下

|locales
	|-el
		|--messages_en.json
		|--messages_zh.json

详细json内容请参考我的git地址,包含本文和相关学习的所有源码
https://github.com/BambooZhang/go-study/tree/master/go-base

源码如下


func main() {
	fmt.Println("从配置文件中读取配置json解析并加载到系统中-------------------")
	InitConfig("go-base/locales/el/messages_zh.json")//加载配置信息json
	InitConfig("go-base/locales/el/messages_en.json")//加载配置信息json
	p = message.NewPrinter(language.SimplifiedChinese)//设置语言类型
	p.Printf("HELLO_1", "Peter")
	fmt.Println()

	p.Printf("VISITOR", "Peter","用户管理系统接口")
	fmt.Println()

	p = message.NewPrinter(language.AmericanEnglish)//设置语言类型
	p.Printf("VISITOR", "Peter","UER MANAGE SYSTEM API")
	fmt.Println()


	msg := Message{"en", "HELLO_WORLD", "%s Hello World"}
	p.Printf("CONFIG", msg) //传一个对象值进去
	fmt.Println()


}

从配置文件中读取想关文件后,json解析出对应的message信息加载到系统中,需要使用时选择好语言,直接调用既返回对应的语言信息

学习资料地址

详细内容请参考我的git地址,包含本文和相关学习的所有源码
https://github.com/BambooZhang/go-study/tree/master/go-base

本文参考资料

[译] 手把手教你 Go 程序的国际化和本土化
https://www.colabug.com/3411106.html

Golang多语言支持实现:构建国际化应用程序 Go语言(Golang)是一种静态类型、编译型语言,它简洁、高效且性能优异,非常适合用于构建大型、高性能的分布式系统和微服务。随着全球化的不断深入,多语言支持成为Web应用和软件服务的重要组成部分。Go语言虽然没有内建的国际化(i18n)和本地化(l10n)库,但可以通过一些策略和第三方库来实现多语言支持。本文将详细介绍如何在Go语言中实现多语言支持,并提供代码示例。 多语言支持是提升用户体验和扩大应用受众的重要特性。Go语言虽然没有内建的国际化库,但通过准备多语言资源、使用上下文传递语言环境、集成第三方库和格式化日期、货币等,可以有效地实现多语言支持。 通过本文的介绍和示例,你应该能够了解如何在Go语言中构建多语言支持的应用程序。记住,多语言支持不仅仅是翻译文本,还包括对日期、时间、货币和数字的适当格式化。随着Go语言的不断发展,我们可以期待更多的工具和库来简化国际化开发。 通过深入理解并应用多语言支持策略,你可以为你的应用程序增添一层国际化的竞争力。这不仅能够提升应用的用户体验,还能够扩大其在全球市场中的吸引力。随着你对Go语言和国际化开发的深入使用,你将更加熟悉如何整合这些特 立即下载

相关推荐

四自由度SCARA机器人的运动学和动力学MATLAB建模与仿真

本文介绍了四自由度SCARA机器人的运动学和动力学建模,使用MATLAB进行了相应的建模与仿真。通过正运动学和动力学分析,可以了解机器人在不同状态下的运动特性和力学特性。这为后续的控制算法设计和性能优化打下了基础。希望本教程对学习SCARA机器人有帮助。

小蜗牛的珍贵百宝箱 3636

golang从0到1实战系统九十八: 国际化和本地化

同一种语言的不同国家,例如"en_US"表示美国英语,而"en_UK"表示英国英语。在应用里面设置域名和相应的 locale 的对应关系,就可以设置好地区。目前,Go 语言的标准包没有提供对 i18n 的支持,但有一些比较简单的第三方实现,这一。分,跟在一个句点之后,是可选的字符集说明符,例如"zh_CN.gb2312"表示中国使用。等)来设置与之相关的 locale,我们可以通过如下几种方式来设置用户的 locale。第二部分,跟在一个下划线之后,是一个可选的国家说明符,用于区分讲。些地区名的命名规范。

Mr_Roki的博客 839

BUCK电路的大信号模型与小信号模型推导

推导开关电源信号模型的核心是将非线性开关过程线性化,常用。如需具体拓扑的推导细节,可进一步说明!

创新改变世界! 1165

知识分享之Golang——go-i18n的使用

知识分享之Golang——go-i18n国际化组件 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。 开发环境 系统:windows10 语言:Golang 组件库:Bleve golang版本:1.17 组...

CN華少的博客 1337

基于ADS\HFSS\Matlab的平面带通发夹滤波器设计

写在最前面,前段时间完成了一个小项目,实现13.5~14GHz的带通滤波器,算是第一个微波项目,在老师、学长、各种大神的指点下,最终完成了指标,想来这段时间收获良多,想到老师教导的,有能力的话要尽可能帮助别人,以及网络上很少面向于小白的教程,于是决定把自己做这个小项目的经过,一些关键步骤,还有软件操作和公式讲解都发出来,供大家指正借鉴。由于我目前大三,刚学习电磁场、微波工程等等,技术实在有限,同时这样是我第一次发帖子,只能尽可能的将自己确认过正确的内容,步骤以及一些经验写出来,供大家借鉴。

likaifeng12138的博客 5214

Google Earth Engine:计算逐年全球潜在蒸发量(PET)的 ERA 数据

通过获取温度、湿度和降水数据,并使用Penman-Monteith公式,我们可以得到每年的潜在蒸发量。在本文中,我们将使用Google Earth Engine平台和ERA(欧洲再分析气象数据集)数据来计算逐年全球的潜在蒸发量(PET)。接下来,我们需要对ERA数据进行预处理,以获取我们需要的潜在蒸发量数据。有了温度、湿度和降水数据,我们可以使用Penman-Monteith公式来计算每年的潜在蒸发量。最后,我们可以将计算得到的潜在蒸发量数据进行可视化,以便更好地理解全球的水汽蒸发情况。

VwajAlgorithm的博客 729

知识分享之Golang——go-i18n国际化组件

知识分享之Golang——go-i18n国际化组件 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。 开发环境 系统:windows10 语言:Golang 组件库:Bleve golang版本:1.17 组...

CN華少的博客 1982

从后端角度浅谈抗辐射设计----三模冗余(TMR)

三模冗余设计(TMR),是最常用的一种容错技术,三个模块采取相同的操作,以多数相同的输出作为表决系统的正确输出,即3取2,因为三个模块是相互独立的,而其中两个模块同时出错的概率是极小的,因此便可保证系统输出的可信度。然而这个设计也会存在面积浪费,功耗的增加,而且由于是冗余的设计,在后续进行综合或者pr的时候会被工具优化,因此需要对模块进行don’t touch设置;通过增值表得到,逻辑关系表达式为:Q=(Q1&Q2)|(Q1&Q3)|(Q2&Q3),通过工艺库的stdcell进行搭建,得到如下电路。

芯冰乐 326

Go 翻译

Go 翻译 Language and Locale Matching in Go https://blog.golang.org/matchlang用golang.org/x/text实现国际化和本地化.pdf http://www.open-open.com/doc/view/b8b24fb47ca8457e8372481829793580Proposal: Localization sup

美女心跳的博客 642

华为od 面试八股文_前端_01_含答案

华为od 面试八股文_前端_01_含答案

MISAYAONE的博客 2744

代码接单:用 ComfyUI 搭建电商模特换装工作流(保姆级教程)

在闲鱼和小红书上,搜一下“AI 模特图”或者“服装换模特”,你会发现大量的接单需求。太贵:请个外模拍一套图,动辄几千块。太慢:寄样品、排期、拍摄、修图,半个月过去了。太卷:竞对都在上新,你还在等图。“给我一张你的衣服平铺图(或假人图),我 10 分钟给你生成真人上身图,一张只要 50 块。对于商家是省钱,对于你是纯利润。为什么不用 Midjourney?因为 MJ 抽卡不可控,无法保持衣服版型一致。只有 ComfyUI,才能做到精准控制,实现工业化量产。

BUG猿的博客 1774

go采集linux信息,Go语言的国际化支持(基于gettext-go)

hello, world!假设有以下的程序, 输出: “Hello, world!”.package mainimport ("fmt")func main() {fmt.Println("Hello, world!")}现在要让改程序支持不同语言的用户, 然后以本地语言输出相同意思的信息. 这就是很多程序面临的国际化问题.Go 语言的国际化思路程序的国际化一般涉及到编码和翻译两个概念. 其中编码...

weixin_33401529的博客 212

SAP FICO CBS接口-银企直连付款平台功能开发说明书(包括测试样例、FS)

SAP FICO CBS接口-银企直连付款平台功能开发说明书(包括测试样例、FS)

我好像病了的博客 2447

Go语言的国际化支持(基于gettext-go)

程序的国际化一般涉及到编码和翻译两个概念. 其中编码一般采用 UTF8 编码标准, Go 语言已经完美支持. 而目前常见翻译技术是 Qt 的。这是因为 gettext-go 翻译时不仅要依赖对应语言的翻译文件, 还需要知道要范围为哪种语言(和网上翻译类似, 需要知道翻译的目标语言).现在要让改程序支持不同语言的用户, 然后以本地语言输出相同意思的信息. 这就是很多程序面临的国际化问题.上下文信息的, 但是 C/C++ 的翻译接口函数并没有上下文的参数, 因此 传统的。

SAGGITARXM 901

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Go项目国际化终极指南:在LiteIDE中使用go-i18n轻松实现多语言支持

Go语言作为现代软件开发的重要工具,其国际化需求日益增长。LiteIDE作为一款优秀的Go语言集成开发环境,为开发者提供了便捷的多语言处理方案。本文将为您详细介绍如何在LiteIDE中利用go-i18n库实现Go项目的国际化,让您的应用轻松走向全球市场!✨ ## 为什么需要国际化? 随着全球化的深入发展,软件应用需要面向不同国家和地区的用户。国际化(i18n)不仅涉及语言翻译,还包括日期格式、

gitblog_01138的博客 1040

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

golang国际化站点

管理多个本地包 在开发一个应用的时候,首先我们要决定是只支持一种语言,还是多种语言,如果要支持多种语言,我们则需要制定一个组织结构,以方便将来更多语言的添加。在此我们设计如下:Locale有关的文件放置在config/locales下,假设你要支持中文和英文,那么你需要在这个文件夹下放置en.json和zh.json。大概的内容如下所示: # zh.json { "zh": { "submit": "提交", "create": "创建" } } #en.json { "

1109

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【亲测免费】 i18n - Golang 国际化支持库

i18n - Golang 国际化支持库 项目基础介绍 i18n 是一个用 Golang 编写的开源项目,旨在为应用程序提供国际化支持。该项目支持多种后端存储方式,包括数据库和文件系统。i18n 通过提供对应用程序的多语言支持,帮助开发者轻松实现软件的本地化。 主要编程语言 Go 核心功能 多语言支持:i18n 支持多种语言,使得应用程序可以根据用户的语言环境显示对应的文本。 多种存储后端:...

gitblog_00863的博客 458

强烈推荐:一个让你的电话号码处理更加得心应手的强大工具 —— `libphonenumber-go`

强烈推荐:一个让你的电话号码处理更加得心应手的强大工具 —— libphonenumber-go 在日常开发中,我们经常会遇到对电话号码进行验证、解析或格式化的场景。无论是处理本地还是国际电话号码,准确性和便捷性都是我们需要考虑的重点。今天要向大家推荐的就是这样一个强大且成熟的库——libphonenumber-go,它是Google的libphonenumber库的一个Golang版本,功能全面...

gitblog_00458的博客 485

Go-i18n: 实现Go程序多语言翻译的强大工具

**Go-i18n** 是一个专为Go语言设计的开源项目,旨在简化Go应用程序的国际化和本地化过程。它采用Go作为主要开发语言,为开发者提供了便利的工具包和命令行工具,以支持多种语言环境下的字符串翻译。 ## 核心功能 1. **全面的多语言支持**:支持对Unicode CLDR库中所有的200余种语言的复数形式进行处理。 2. **自动提取与管理翻译消息**:通过`goi18n`命令行工具,...

gitblog_07307的博客 938

i18n4go 项目常见问题解决方案

i18n4go 项目常见问题解决方案 1. 项目基础介绍和主要编程语言 i18n4go 是一个为 Go 语言(Golang)程序提供国际化和本地化支持的工具。它可以帮助开发者准备和维持国际化的 Go 代码,以便在不同的语言环境中使用。该工具最初是在为 Cloud Foundry 命令行工具添加国际化支持时提取出来的。i18n4go 使用 Go 语言编写,主要针对 Golang 开发者。 2. 新手...

gitblog_00580的博客 720

Go 国际化库 `go-i18n` 教程

`go-i18n` 是一个用于 Go 语言的本地化库,支持多语言翻译。它提供了提取和管理本地化消息的功能,帮助开发者轻松地将程序翻译成多种语言。该库允许自定义语言包,并且可以通过配置文件进行动态加载。 ## 2. 项目快速启动 ### 安装依赖 首先,确保你已经安装了 Go 的最新版本,然后通过 `go get` 命令安装 `go-i18n`: ```shell go install git...

gitblog_00967的博客 990

i18n4go 项目使用教程

i18n4go 项目使用教程 1. 项目的目录结构及介绍 i18n4go 项目的目录结构如下: i18n4go/ ├── bin/ ├── cmds/ ├── common/ ├── docs/ ├── example/ ├── gi18n/ ├── i18n/ ├── integration/ ├── test_fixtures/ ├── .gitignore ├── .travis.yml ├...

gitblog_00026的博客 391

Go Web 编程

build web application with golang 1.Go环境配置 1.1. 安装Go 1.2. GOPATH 与工作空间 1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得

ccf19881030的专栏 386
上一篇: SpringBoot使用Nacos作为配置中心服务和服务注册中心
下一篇: Iris实现reponse拦截返回客户端消息
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值