不灭的火

革命尚未成功,同志仍须努力下载JDK17

作者:AlbertWen  添加时间:2017-10-29 09:57:25  修改时间:2025-03-28 08:35:57  分类:14.Golang/Ruby  编辑

Go 语言的 1.5 版本在标准命令方面有了重大变更。这倒不是说它们的用法有多大的变化,而是说它们的底层支持已经大变样了。让我们先来对比一下 $GOROOT/pkg/tool/< 平台相关目录 > 中的内容。以下简称此目录为 Go 工具目录。

插播:平台相关目录即以_命名的目录,用于存放因特定平台的不同而不同的代码包归档文件或可执行文件。其中,代表特定平台的操作系统代号,而则代表特定平台的计算架构代号。使用 go env 命令便可查看它们在你的计算机中的实际值。

作者:AlbertWen  添加时间:2017-10-29 20:48:55  修改时间:2025-03-27 21:01:10  分类:14.Golang/Ruby  编辑
作者:AlbertWen  添加时间:2017-10-29 09:55:20  修改时间:2025-03-29 14:16:18  分类:14.Golang/Ruby  编辑

Golang 提供了两个标准库用来处理模板 text/template 和 html/template。我们使用 html/template 格式化 html 字符。

模板引擎

模板引擎很多,Python 的 jinja,nodejs 的 jade 等都很好。所谓模板引擎,则将模板和数据进行渲染的输出格式化后的字符程序。对于 Go,执行这个流程大概需要三步。

  1. 创建模板对象
  2. 加载模板字串
  3. 执行渲染模板

其中最后一步就是把加载的字符和数据进行格式化。其过程可以总结下图:

作者:AlbertWen  添加时间:2017-10-29 09:13:36  修改时间:2025-03-31 16:56:52  分类:14.Golang/Ruby  编辑

类型 和 接口

由于反射是基于类型系统(type system)的,所以先简单了解一下类型系统。

首先 Golang 是一种静态类型的语言,在编译时每一个变量都有一个类型对应,例如:int, floate32, []byte, *MyType 等等。如果我们这样声明:

type MyInt int

var i int
var j MyInt

上面的 i 是 int 类型的, j 是 MyInt 类型的。i 和 j 是不同的静态类型,尽管他们都有相同的相关类型(这里就是 int),他们不能互相赋值除非通过强制转换。

一种非常重要的类型分类是接口类型,接口代表中方法的集合。只要一个值实现了接口定义的方法,那么这个值就可以存储这个具体的值。一个著名的例子就是 io 包中的 Reader 和 Writer。

作者:AlbertWen  添加时间:2017-10-29 09:43:48  修改时间:2025-04-01 13:54:09  分类:14.Golang/Ruby  编辑

来历

很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员会来他们公司演讲,说c++将要添加大概35种新特性。这几个大牛的其中一个人,名为:Rob Pike,听后心中一万个xxx飘过,“c++特性还不够多吗?简化c++应该更有成就感吧”。于是乎,Rob Pike和其他几个大牛讨论了一下,怎么解决这个问题,过了一会,Rob Pike说要不我们自己搞个语言吧,名字叫“go”,非常简短,容易拼写。其他几位大牛就说好啊,然后他们找了块白板,在上面写下希望能有哪些功能(详见文尾)。接下来的时间里,大牛们开心的讨论设计这门语言的特性,经过漫长的岁月,他们决定,以c语言为原型,以及借鉴其他语言的一些特性,来解放程序员,解放自己,然后在2009年,go语言诞生。

作者:AlbertWen  添加时间:2017-10-29 09:00:41  修改时间:2025-03-29 14:32:36  分类:14.Golang/Ruby  编辑

有时候 go get 比较慢,可以考虑用迅雷等下载工具下载下来,然后再本地安装,

如:code.google.com/p/go.net/websocket,如何安装这些离线包?

先在你的 GOPATH 目录(如果不懂 GOPATH,请先弄懂)下,创建目录 src

mkdir src

复制 code.google.com.p.go.net.tar.gzsrc 目录下,解压缩,这时候目录应该看起来是这个样子,

作者:AlbertWen  添加时间:2017-10-29 10:16:43  修改时间:2025-03-12 09:01:29  分类:14.Golang/Ruby  编辑

命令 go fix 会把指定 代码包 的所有 Go 语言源码文件中的旧版本代码修正为新版本的代码。这里所说的版本即 Go 语言的版本。代码包的所有 Go 语言源码文件不包括其子代码包(如果有的话)中的文件。修正操作包括把对旧程序调用的代码更换为对新程序调用的代码、把旧的语法更换为新的语法,等等。

作者:AlbertWen  添加时间:2017-10-29 20:24:32  修改时间:2025-03-12 00:38:13  分类:14.Golang/Ruby  编辑

[荐] Gitea:Git with a cup of tea,在 Gogs 基础上,发展起来的 自助 Git 服务系统。Gogs是一个个人维护的版本,而Gitea是一个社区组织维护的,版本迭代更新快

[github] [官网] [二进制安装]

搭建过程如下:

下载二进制包

建议到官网上 下载 执行包,github 上下载太慢。CentOS 64 位系统,选择最新版的:gitea-1.1-linux-amd64。

下载后,重命名为 gitea,存放到服务器上的物理路径为: /fiisoo/go/gitea

作者:AlbertWen  添加时间:2019-06-18 10:17:18  修改时间:2025-03-24 11:05:23  分类:14.Golang/Ruby  编辑

V语言 版本发布 记录

作者:AlbertWen  添加时间:2017-10-29 09:02:34  修改时间:2025-03-29 16:03:09  分类:14.Golang/Ruby  编辑

GOPATH 环境变量用于指定这样一些目录:除 $GOROOT 之外的包含 Go 项目源代码和二进制文件的目录。go install 和 go 工具会用到 GOPATH:作为编译后二进制的存放目的地 和 import 包时的搜索路径。

GOPATH 是一个路径列表,也就是可以同时指定多个目录。多个目录在 Mac 和 Linux 下通过“:”分割,Windows下通过“;”分割。注意,大部分情况下会是第一个路径优先,比如:查找包