go

go 升级到1.16

假装没事ソ 提交于 2021-02-20 19:50:23
golang 多个版本管理 下载页面 多个版本管理 1.下载go1.16 ➜ bin pwd /Users/xxxx/go-dev/bin ➜ bin go get golang.org/dl/go1.15.8 go: finding golang.org/dl latest ➜ bin ll total 28816 -rwxr-xr-x 1 xxxxx staff 7.0M 2 20 18:33 go1.15.8 -rwxr-xr-x 1 xxxxx staff 7.0M 2 20 18:31 go1.16 确保可执行路径已经添加到PATH中. # go export GOPATH="${HOME}/go-dev" # GOROOT是GO的安装路径 export GOROOT="$(brew --prefix golang)/libexec" export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin" 新开终端/或者重新激活一下zshrc 2.下载go1.16 同时配置go1.16 env GOROOT ➜ ~ go1.16 go1.16: not downloaded. Run 'go1.16 download' to install to /Users/xxxxxx/sdk/go1.16 ➜ ~ go1.16 download ➜ ~

How to set a struct member that is a pointer to a string using reflection in Go

喜夏-厌秋 提交于 2021-02-20 18:53:07
问题 I am trying to use reflection to set a pointer. elasticbeanstalk.CreateEnvironmentInput has a field SolutionStackName which is of type *string . I am getting the following error when I try to set any value: panic: reflect: call of reflect.Value.SetPointer on ptr Value Here is my code: ... newEnvCnf := new(elasticbeanstalk.CreateEnvironmentInput) checkConfig2(newEnvCnf, "SolutionStackName", "teststring") ... func checkConfig2(cnf interface{}, key string, value string) bool { log.Infof("key %v,

all goroutines are asleep deadlock

£可爱£侵袭症+ 提交于 2021-02-20 18:17:53
问题 I am trying to play around with goroutines and channel package main import ( "fmt" "math/rand" "time" ) func boring(msg string) <-chan string { c := make(chan string) go func() { for i := 0; ; i++ { c <- fmt.Sprintf("%s %d", msg, i) time.Sleep(time.Duration(rand.Intn(1e3)) * time.Millisecond) } }() return c } func main() { c := fanInNew(boring("joe"), boring("anh")) for i := 0; i < 10; i++ { fmt.Println(<-c) } fmt.Println("You both are boring, I am leaving") } func fanInNew(input1, input2 <

all goroutines are asleep deadlock

不羁的心 提交于 2021-02-20 18:14:06
问题 I am trying to play around with goroutines and channel package main import ( "fmt" "math/rand" "time" ) func boring(msg string) <-chan string { c := make(chan string) go func() { for i := 0; ; i++ { c <- fmt.Sprintf("%s %d", msg, i) time.Sleep(time.Duration(rand.Intn(1e3)) * time.Millisecond) } }() return c } func main() { c := fanInNew(boring("joe"), boring("anh")) for i := 0; i < 10; i++ { fmt.Println(<-c) } fmt.Println("You both are boring, I am leaving") } func fanInNew(input1, input2 <

golang tools安装记录

主宰稳场 提交于 2021-02-20 11:02:56
我的环境: OS:macos,11.2.1 golang:go version go1.16 darwin/arm64 golang环境变量: GOPROXY="https://goproxy.cn,direct" GO111MODULE="on" 现在可以安装了,在命令行执行 go get -v -u golang.org/x/tools/cmd/... 即可把所有的go命令安装好了,安装在$GOPATH/bin目录下 来源: oschina 链接: https://my.oschina.net/OHC1U9jZt/blog/4957136

golang开发工具安装

为君一笑 提交于 2021-02-20 10:45:50
一、开发环境IDE安装 工欲善其事,必先利其器 这里推荐两款golang开发工具,一个是 goland ,一个是 VSCode ;goland是收费的,收费还是有收费的道理,确实比较好用,个人比较推荐;VSCode需要安装插件,免费版本,这个是前端开发的利器,go语言开发感觉还是差一点; 1. Goland JetBrains 的官方网站为: https://www.jetbrains.com/go/ JetBrains 旗下的产品众多,最出名的就是IDEA,java开发工具;当然PHP,Python,Scala等开发语言,数据库版本都是有的; 首先打开File->Setting或者Ctrl+Alt+S,设置goroot和gopath,默认会获取环境变量配置 如果我们需要使用go modules功能,需要进行开启设置; 最好我们编写helloworld运行 新建项目study1,选择目录 新建go文件 编写hello world package main import "fmt" func main(){ fmt.Println("hello world!") } 最后点击左侧启动运行,或者按Ctrl+Shift+F10运行程序 最终我们看到hello world运行成功! 2. vscode VSCode的官网: https://code.visualstudio.com/

在SQL Server中查看对象依赖关系

只谈情不闲聊 提交于 2021-02-20 08:36:24
原文 在SQL Server中查看对象依赖关系 Viewing object dependencies in SQL Server Deleting or changing objects may affect other database objects like views or procedures that depends on them and in certain instances, can “break” the depending object. An example can be that if a View queries a table and the name of that table changes. The View will no longer function. In SQL Server there are several ways to find object dependencies. The sp_depends system stored procedure SQL Server dynamic management functions including. sys.dm_sql_referencing_entities sys.dm_sql_referenced_entities The View Dependencies

golang介绍及环境搭建

夙愿已清 提交于 2021-02-20 00:50:08
一、golang介绍 1. 语言介绍 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人, 并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本 。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go 语言是谷歌为充分利用现代硬件性能又兼顾开发效率而设计的一种全新语言。 Go 是一种跨平台(Mac OS、Windows、Linux 等)静态编译型语言 。拥有媲美 C 语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几。 Go 语言在国内拥有非常活跃的社区、不仅大公司的 Go 项目越来越多,中小公司也都在考虑 Go 的应用。当前 Go 语言主要应用于后端服务的开发,未来随着 Go 项目的完善,在系统、游戏、UI界面、AI、物联网等领域,都将被广泛使用。 当然 Go 语言有优点也有一些缺点,完美的东西毕竟太少,如果看好 Go 的未来发展,那么不如抛开成见先来体验一番。 2. 特性说明 跨平台即最终可以执行到Windows,Linux,Unix等操作系统; 静态语言 :1)编译工具代码感知更友好;2

Handling LPTSTR in golang with lxn/win

不打扰是莪最后的温柔 提交于 2021-02-19 23:57:32
问题 I have this piece of code which runs without returning err but simply doesn't do its job because it doesn't return the expected value. The idea is to use SHGetSpecialFolderPath in order to retrieve the path to the Windows directory ( C:\Windows for example). This api call has the following signature: BOOL SHGetSpecialFolderPath( HWND hwndOwner, _Out_ LPTSTR lpszPath, _In_ int csidl, _In_ BOOL fCreate ); I know it is deprecated, but still available even on current Windows versions. I have to

基于hprose-golang创建RPC微服务

女生的网名这么多〃 提交于 2021-02-19 11:02:12
Hprose (High Performance Remote Object Service Engine) 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。 官网: https://hprose.com/ 本文将讲解如何使用 Hprose go 服务端编写一个微服务,并实现客户端调用。 本文的涉及的项目代码托管在github: https://github.com/52fhy/hprose-sample 。 使用Go实现服务端 初始化 git初始化: git init echo "main" >> .gitignore echo "# hprose-sample" >> README.md 项目使用 go mod 管理依赖,请确保安装的Go版本支持该命令。先初始化 go.mod 文件: go mod init sample 最终项目目录结构一览: ├── config │ └── rd.ini ├── dao ├── main.go ├── model └── util ├── config.go └── state.go ├── service │ └── sample.go ├── go.mod ├── go.sum ├── client_test.go ├── README.md ├── php ├── logs