go入门demo

news2024/9/19 10:54:43

go快速学习:

官网学习方案(选择自己喜欢的语言):A Tour of Go

视频:B站是个不错的选择
 (转go入门使用)推荐视频:
1-课程需知与课程提纲_哔哩哔哩_bilibili1-课程需知与课程提纲是8小时转职Golang工程师(如果你想低成本学习Go语言)的第1集视频,该合集共计52集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bilibili.com/video/BV1gf4y1r79E/?p=1&spm_id_from=pageDriver&vd_source=7f4825d3e8c655d4767b206d86d944db

推荐go编辑idea:推荐vscode (Visual Studio Code - Code Editing. Redefined)           golang(付费,头一个月免费,破解另说)

go环境安装:Download and install - The Go Programming Language

idea插件:vscode      (golang也是一个不错的选择)

当ctrl shift  l  格式化不起作用时,可能是插件未安装,尝试一下下面的方式

入门安装遇到的问题 1.vscode推荐的安装install (重启打开)   2.因为插件原因破坏,可能需要卸载后重新安装

vscode命令方式安装必要的插件: 控制台: go  vet .    

 历史安装描述

D:\go\crm\dbutils>Finished running tool: C:\Go\bin\go.exe build -o C:\Users\haoha\AppData\Local\Temp\vscode-goan5lqB\go-code-check .

D:\go\crm\dbutils>Finished running tool: C:\Go\bin\go.exe vet .

Installing github.com/cweill/gotests/gotests@v1.6.0 (C:\Users\haoha\go\bin\gotests.exe) SUCCEEDED
Installing github.com/cweill/gotests/gotests@v1.6.0 (C:\Users\haoha\go\bin\gotests.exe) SUCCEEDED
Installing github.com/fatih/gomodifytags@v1.16.0 (C:\Users\haoha\go\bin\gomodifytags.exe) SUCCEEDED
Installing github.com/fatih/gomodifytags@v1.16.0 (C:\Users\haoha\go\bin\gomodifytags.exe) SUCCEEDED
Installing github.com/josharian/impl@v1.1.0 (C:\Users\haoha\go\bin\impl.exe) SUCCEEDED
Installing github.com/josharian/impl@v1.1.0 (C:\Users\haoha\go\bin\impl.exe) SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay@v1.0.0 (C:\Users\haoha\go\bin\goplay.exe) SUCCEEDED
Installing github.com/haya14busa/goplay/cmd/goplay@v1.0.0 (C:\Users\haoha\go\bin\goplay.exe) SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv@latest (C:\Users\haoha\go\bin\dlv.exe) SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv@latest (C:\Users\haoha\go\bin\dlv.exe) SUCCEEDED
Installing honnef.co/go/tools/cmd/staticcheck@latest (C:\Users\haoha\go\bin\staticcheck.exe) SUCCEEDED
Installing honnef.co/go/tools/cmd/staticcheck@latest (C:\Users\haoha\go\bin\staticcheck.exe) SUCCEEDED
Installing golang.org/x/tools/gopls@latest (C:\Users\haoha\go\bin\gopls.exe) SUCCEEDED
Installing golang.org/x/tools/gopls@latest (C:\Users\haoha\go\bin\gopls.exe) SUCCEEDED

All tools successfully installed. You are ready to Go. :)
Installing github.com/ramya-rao-a/go-outline@v0.0.0-20210608161538-9736a4bde949 (C:\Users\haoha\go\bin\go-outline.exe) SUCCEEDED

All tools successfully installed. You are ready to Go. :)

推荐其他插件:Tabnine AI      tab补全代码

go安装后环境查看及其他常用命令

go mod init  模块名

命令:go mod init im

go mod tidy 

编写main.go后就可以使用 go  run main.go  或者 go  run .

之后了解 package 、  数据类型(基本数据类型 ,复杂数据类型 ) 、函数  、import、  指针    struct (类似class概念)、channel 、   comparable  、值传递和引用传递(推荐官网方式)

if   for循环   switch    select  等

基本数据类型

uint8       the set of all unsigned  8-bit integers (0 to 255)
uint16      the set of all unsigned 16-bit integers (0 to 65535)
uint32      the set of all unsigned 32-bit integers (0 to 4294967295)
uint64      the set of all unsigned 64-bit integers (0 to 18446744073709551615)

int8        the set of all signed  8-bit integers (-128 to 127)
int16       the set of all signed 16-bit integers (-32768 to 32767)
int32       the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64       the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)

float32     the set of all IEEE-754 32-bit floating-point numbers
float64     the set of all IEEE-754 64-bit floating-point numbers

complex64   the set of all complex numbers with float32 real and imaginary parts
complex128  the set of all complex numbers with float64 real and imaginary parts

byte        alias for uint8
rune        alias for int32

命令集合

go mod download    下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit        编辑go.mod文件
go mod graph       打印模块依赖图
go mod init  模块名        初始化当前文件夹, 创建go.mod文件
go mod tidy        增加缺少的module,删除无用的module
go mod vendor      将依赖复制到vendor下
go mod verify      校验依赖
go mod why         解释为什么需要依赖

入门程序案例

package main

import (
	"fmt"
	"im/lib1"   // . "im/lib1" 点号导包不推荐
	_ "im/lib1" //匿名导包
	mylib "im/lib2"
)

// 启动加载项  const  var   init  main func
func main() {
	r1, r2 := f(2, 3)
	fmt.Println(r1, r2)

	lib1.TestLib()
	a := 18
	fmt.Println()
	fmt.Println("修改前的值:", a, &a)
	changeValue(&a)
	fmt.Println("修改后的值:", a)

	pa := 10
	pb := 20
	swap(&pa, &pb)
	fmt.Println(pa, pb)
	mylib.Test()

	fmt.Println("=======sumx==========")
	lib1.GetSum()
	fmt.Println("=======sumx==========")
}

func f0(a int, b int) (int, int) {
	r1 := 10
	r2 := 10
	return r1, r2
}

func f(a int, b int) (r1, r2 int) {
	r1 = 10
	r2 = 10
	return
}

// 指针即地址   取指针类型中的值用*,取地址第一种为&取地址,第二种指针本身为地址值
func changeValue(a *int) {
	*a = 10
	fmt.Println(a) //本身输出为地址值
}

func swap(a *int, b *int) {
	var tmp int = *a
	*a = *b
	*b = tmp
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

把握住golang中的template,方能驾驭得了Hugo主题的template

笔者小站:秋码记录 不置可否,Hugo的template同样是使用golang的标准库html/template。为了能实现一个属于自己独特的Hugo theme,或是修改他人的主题,都得对其模板语法有所知晓,方能改的称心如意,亦或是制作…

HarmonyOS学习路之开发篇—数据管理(融合搜索)

融合搜索概述 HarmonyOS融合搜索为开发者提供搜索引擎级的全文搜索能力,可支持应用内搜索和系统全局搜索,为用户提供更加准确、高效的搜索体验。 基本概念 全文索引 记录字或词的位置和次数等属性,建立的倒排索引。 全文搜索 通过全文索引进…

GEE:哨兵数据时间序列计算物候时期EOS/SOS

作者:CSDN _养乐多_ 本文将介绍使用哨兵数据时间序列计算植被物候时期EOS/SOS的代码。 文章目录 一、需要代码请私聊二、代码三、代码链接 一、需要代码请私聊 二、代码 //待更新 三、代码链接 //待更新 声明: 本人作为一名作者,非常重…

11 Java的三元运算符使用

三元运算符使用规则: 关系表达式 ? 表达式1 : 表达式2; 如果关系表达式成立,则结果是表达式1,如果不成立,则结果为表达式2。 package demo;public class Demo1 {public static void main(String[] args) {int a 20;int b 30;i…

基于simulink使用二维规范化互相关进行模式匹配和目标跟踪(附源码)

一、前言 此示例演示如何使用二维规范化互相关进行模式匹配和目标跟踪。双击“编辑参数”块以选择要检测的类似目标的数量。您还可以更改金字塔因子。通过增加它,您可以更快地将目标模板与每个视频帧匹配。更改金字塔因子可能需要更改阈值。 此外,还可…

从零实现深度学习框架——深入浅出PackedSequence

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 💡系列文章完整目录: 👉点此👈 要深入理解…

使用RabbitMQ

使用RabbitMQ 1 Docker安装RabbitMQ 1.1 安装RabbitMQ # 下载含有管理页面的镜像 docker pull rabbitmq:3.8.8-management# 创建容器 # 5672:应用访问端口;15672:控制台Web端口号; docker run -itd \ --namemy-rabbitmq \ --re…

【Python】Python基础知识总结

🎉欢迎来到Python专栏~Python基础知识总结 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文中出现错误,希望…

5. 学成在线案例

1.典型的企业级网站 2.目的:整体感知企业级网站布局流程,复习以前的知识 5.1 准备素材和工具 1.学成在线PSD源文件 2.开发工具 PS(切图) / cutterman插件 vscode(代码) chrome(测试) 5.2 案例准备工作 采取结构与样式相分离思想: 1.创…

【备战秋招】每日一题:2022.11.3-华为机试-去除多余空格

为了更好的阅读体检,可以查看我的算法学习网 在线评测链接:P1058 题目描述 塔子哥最近接到导师的一个任务,需要他帮忙去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词…

豆瓣T250电影

爬取电影名字、年份、评分、评价人数 import requests import re import csv"""1、拿到页面源代码"""headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.…

IntelliJ IDEA安装Mybatis 插件Free Mybatis plugin

需求描述 在开发一些Mybatis的项目,经常需要写一个Mapper接口,在找代码过程,经常需要去找对应的xml文件,所以非常的不方便。自从有了免费的free-mybatis-plugin插件之后 ,在可以实现在idea里一键跳转到对应的xml文件&…

CRC16_Verilog

CRC校验 CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,…

Mac系统远程连接Windows11

一、远程桌面连接Windows11 1、下载并安装Microsoft Remote Desktop for mac。(Microsoft Remote Desktop for mac简介,下载链接) 2、Windows11开启远程桌面。 3、为当前Windows11账号设置密码。 二、ssh连接Windows11 1、下载并安装OpenSS…

numpy与python版本不匹配-ImportError: Unable to import required dependencies: numpy

问题 你在运行python代码的时候,是否遇到过下面这种错误 ImportError: Unable to import required dependencies: numpy: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!Importing the numpy C-extensions failed. This error can happen f…

【优选算法题练习】day2

文章目录 一、11. 盛最多水的容器1.题目简介2.解题思路3.代码4.运行结果 二、611. 有效三角形的个数1.题目简介2.解题思路3.代码4.运行结果 三、剑指 Offer 57. 和为s的两个数字1.题目简介2.解题思路3.代码4.运行结果 总结 一、11. 盛最多水的容器 1.题目简介 11. 盛最多水的…

笔试刷过的题---选择

1.若使求解TSP算法,则时间复杂度是() 2.用1*3的瓷砖密铺3*20的地板有()种方式 答:1278 3.可以用于路径规划的算法 有多种算法可以用于路径规划,以下是一些常见的算法: Dijkstra算…

在电脑上,一秒钟快速复制汇总上百成千个文件(夹》到指定文件夹中

在日常生活和工作中,我们经常需要对大量的文件进行重命名,以方便整理和管理。使用高效的文件批量改名软件可以极大地提高我们的工作效率。本文将介绍一款功能强大的文件批量改名软件,并演示如何使用它来实现快速的文件重命名。 该软件的名称…

Spring异常处理器

文章目录 1. 异常分析2. 异常处理器2.1 异常处理器核心2.2 异常处理顺序 3. 自定义异常 1. 异常分析 问题:   程序允许不免的在各层都可能会产生异常,我们该如何处理这些异常? 如果只是在方法里面单独使用 try… catch… 语句去一个一个的进行捕捉处理的话&#x…

【JUC并发编程】读写锁:ReadWriteLock

一、介绍 二、代码演示 1. 不使用读写锁 package readwritelock;import java.util.HashMap; import java.util.Map;/*** author swaggyhang* create 2023-07-09 11:16*/ public class Test01 {public static void main(String[] args) {MyCache myCache new MyCache();for (…