Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /webData/hua/www.ascwh.com/var/Typecho/Feed.php on line 297
ASCWH - Golang https://ascwh.com/tag/Golang/ zh-CN Mon, 22 Aug 2022 16:16:18 +0800 Mon, 22 Aug 2022 16:16:18 +0800 记录下 go 基础 字符串 与 int 、int64 互转 https://ascwh.com/403.html https://ascwh.com/403.html Mon, 22 Aug 2022 16:16:18 +0800 ASCWH package main import ( "fmt" "reflect" "strconv" ) func main() { var testStr string = "123456" // 字符串 转 int intNum, _ := strconv.Atoi(testStr) fmt.Println("intNum =", intNum, ", intNum 类型是", reflect.TypeOf(intNum)) // 字符串 转 int64 int64Num, _ := strconv.ParseInt(testStr, 10, 64) fmt.Println("int64Num=", int64Num, ", int64Num 类型是", reflect.TypeOf(int64Num)) // =================================================== // int 转 字符串 var intNum2 int = 123456 var str1 string = strconv.Itoa(intNum2) fmt.Println("str1 =", str1, ", str1 类型是", reflect.TypeOf(str1)) // int64 转 字符串 var int64Num2 int64 = 123456 var str2 string = strconv.FormatInt(int64Num2, 10) fmt.Println("str2 =", str2, ", str2 类型是", reflect.TypeOf(str2)) fmt.Println("----------------- 类型转换 ---------------------") var num3 int = 30 var num4 int64 num4 = int64(num3) fmt.Printf("num3 的类型是 %T ,num3= %v \n", num3, num3) fmt.Printf("num4 的类型是 %T ,num4= %v \n", num4, num4) var num5 int64 = 20 var num6 int num6 = int(num5) fmt.Printf("num5 的类型是 %T ,num5= %v \n", num5, num5) fmt.Printf("num6 的类型是 %T ,num6= %v \n", num6, num6) }

运行结果:

intNum = 123456 , intNum 类型是 int
int64Num= 123456 , int64Num 类型是 int64
str1 = 123456 , str1 类型是 string      
str2 = 123456 , str2 类型是 string
----------------- 类型转换 ---------------------        
num3 的类型是 int ,num3= 30                             
num4 的类型是 int64 ,num4= 30                           
num5 的类型是 int64 ,num5= 20                           
num6 的类型是 int ,num6= 20  

字符串 与 int 互转

// 字符串 转 int
intNum, _ := strconv.Atoi(testStr)

// int 转 字符串
var str1 string = strconv.Itoa(intNum2)

字符串 与 int64 互转

// 字符串 转 int64
// 参数1:数字类型的字符串
// 参数2:数字字符串的进制, 比如 2进制、8进制、10进制、16进制
// 参数3:bitSize,意思是string转int64时的数值范围的限制,如int8 int16 int32 int64 不同数字类型取值范围是不一样的
int64Num, _ := strconv.ParseInt(testStr, 10, 64)


// int64 转 字符串
// 参数1:int64类型的数字,如果是int、int8 int16 int32,则要使用int64(数字)转换
// 参数2:表示int64数字要转换什么进制的字符串 , 比如 2进制、8进制、10进制、16进制。取值必须在2到36之间。
var str2 string = strconv.FormatInt(int64Num2, 10) 

示例:
字符串 e 属于16进制,是10进制中的14 。

var testStr3 string = "e"
int64Num, _ := strconv.ParseInt(testStr3, 16, 8) 
fmt.Println("int64Num=", int64Num, ", int64Num 类型是", reflect.TypeOf(int64Num))

运行结果:

int64Num= 14 , int64Num 类型是 int64  

int 与 int64 互转最简单
var intNum int = int(int64位数字)
var int64Num int64 = int64(int数字)

]]>
0 https://ascwh.com/403.html#comments https://ascwh.com/feed/tag/Golang/
GoLang实时热加载之Air实现 https://ascwh.com/401.html https://ascwh.com/401.html Fri, 29 Jul 2022 22:40:00 +0800 ASCWH 1.Air介绍
怎样才能在基于gin框架开发时实现实时加载功能呢?像这种烦恼肯定不会只是你一个人的烦恼,所以我报着肯定有现成轮子的心态开始了全网大搜索。果不其然就在Github上找到了一个工具:Air。它支持以下特性:

彩色日志输出
自定义构建或二进制命令
支持忽略子目录
启动后支持监听新目录
更好的构建过程

安装Air
​ 在这里就介绍大众使用的两个版本MacOS和Windows;(建议使用 第一种)

1.这里有一个适用所有的方法:

//1.16可以同时使用这两种方法
go get -u github.com/cosmtrek/air                        //1.16及其以前
go install github.com/cosmtrek/air@latest       //1.16及其以后

注意:在这里大家要注意一下,go从1.16之后不再建议使用go get来获取依赖,但是1.16还是阔以使用go get来获取,1.17之后使用go install来获取相关的依赖

如果出现权限限制使用。sudo+go get -u github.com/cosmtrek/air(1.16版本之前)来强制获取,

2.MacOS

curl -fLo air https://git.io/darwin_air

3.Windows

curl -fLo air.exe https://git.io/windows_air

.使用Air:
为了敲命令时更简单更方便,你应该把alias air='~/.air'(有问题)加到你的.bashrc或.zshrc中。 //这里有个天坑。在后面的问题4种我会详细讲解
首先进入你的项目目录:

cd /path/to/your_project //或者在相关项目下直接操作
最简单的用法就是直接执行下面的命令:

# 首先在当前目录下查找 `.air.conf`配置文件,如果找不到就使用默认的
air -c .air.conf     //这里执行的是自己创建的.air.conf文件,.air,conf中配置运行过程中的相关操作,下面有讲

正常操作流程

#1.通过终端进入相关的项目
#2.直接在编辑器中进入这个项目或者直接在这个项目下
# 1. 在当前目录创建一个新的配置文件.air.conf
touch .air.conf     //也阔以手动在项目根目录下创建

# 2. 复制 `air.conf.example` 中的内容到这个文件,然后根据你的需要去修改它(下面有)

# 3. 使用你的配置运行 air, 如果文件名是 `.air.conf`,只需要执行 `air`。
air    

air_example.conf示例(重要)

# [Air](https://github.com/cosmtrek/air) TOML 格式的配置文件

# 工作目录
# 使用 . 或绝对路径,请注意 `tmp_dir` 目录必须在 `root` 目录下
root = "."
tmp_dir = "tmp"

[build]
# 只需要写你平常编译使用的shell命令。你也可以使用 `make`
# Windows平台示例: cmd = "go build -o tmp\main.exe ."
cmd = "go build -o ./tmp/main ."
# 由`cmd`命令得到的二进制文件名
# Windows平台示例:bin = "tmp\main.exe"
bin = "tmp/main"
# 自定义执行程序的命令,可以添加额外的编译标识例如添加 GIN_MODE=release
# Windows平台示例:full_bin = "tmp\main.exe"
full_bin = "APP_ENV=dev APP_USER=air ./tmp/main"
# 监听以下文件扩展名的文件.
include_ext = ["go", "tpl", "tmpl", "html"]
# 忽略这些文件扩展名或目录
exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"]
# 监听以下指定目录的文件
include_dir = []
# 排除以下文件
exclude_file = []
# 如果文件更改过于频繁,则没有必要在每次更改时都触发构建。可以设置触发构建的延迟时间
delay = 1000 # ms
# 发生构建错误时,停止运行旧的二进制文件。
stop_on_error = true
# air的日志文件名,该日志文件放置在你的`tmp_dir`中
log = "air_errors.log"

[log]
# 显示日志时间
time = true

[color]
# 自定义每个部分显示的颜色。如果找不到颜色,使用原始的应用程序日志。
main = "magenta"
watcher = "cyan"
build = "yellow"
runner = "green"

[misc]
# 退出时删除tmp目录
clean_on_exit = true
]]>
1 https://ascwh.com/401.html#comments https://ascwh.com/feed/tag/Golang/
Mac OS 下brew安装go语言环境配置 https://ascwh.com/270.html https://ascwh.com/270.html Mon, 30 Sep 2019 15:25:17 +0800 ASCWH MAC 安装还是比较简单的

1、安装(brew便于管理和升级)

brew install go

安装过程大同小异,会自动安装GO的最新稳定版本,因为我已经安装好了,没有截图,所以剽窃了一张别人的,好让大家有个参考

出现上面的结果就表示安装成功了,我们在终端输入
go version查看我们的安装版本,

表示我安装的是v1.13版本。

从安装提示中可以看出需要设置GOPATH和GOROOT的环境变量,以及设置PATH.

]]>
0 https://ascwh.com/270.html#comments https://ascwh.com/feed/tag/Golang/