热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go学习笔记

2021-01-3019:39:08由于gomodule原因***用goland一些够goland的一些配置其实和ideapycharm都是一家公司的配置都

2021-01-30 19:39:08

由于 go module原因

***用 goland

一些够goland的一些配置

其实和idea pycharm 都是一家公司的

配置都大差不差

如下配置

1. 配置滚轮

 

 

 

2. 去掉拼写检查

 

 

 3. 自动补全

意义不大,只是不占用ctrl+空格键 settings->keymap->menu->code->completion->Basic  设置成 alt+.  就好了

4. 配置每行注释,,因为默认是ctrl+/  我用vscode用了 alt+/   settings->keymap->menu->code->comment  with Line Comment 设置成alt+/  

5. 由于goland没有默认的eclipse快捷键,故自己下就好了

6. 由于自己项目下有git版本控制,故文件是红色的,故设置一下设置成none就好了

 

 

 7. 设置一下go module的源 按箭头指引就好了

 

 

 

 

 

 8. 真tnd麻烦  还有取消拼写检查(找不到直接搜索就好了)

 

 

 

 

 

 9.一些牛逼的插件  ctrl+alt+s 里的plugins 里进行搜索安装

CodeGlance 代码迷你缩放图插件

Codota

Translation

2021-01-27 21:16:57

依赖管理go module

1.15默认开启GO111MODULE的

直接无脑安装,不需要配置工作区的环境变量

可以手动开启 set GO111MODULE=on

可以设置环境变量 go env -w GO111MODULE=on

更改 go get 的源 go env -w GOPROXY=https://goproxy.cn,direct

初始化init 需要 在项目下 go mod init 该包的名字go mod init xxx 这样go build后的 exe文件就是该名字 ps: go buidl 之前,必须有mod文件, 先 执行上面步骤

 

 

 

2021-1-6 20:12:18

由于自己更懒,直接把笔记和代码直接push到github上面了 ,,每天代码配个README很可,

附上 github  https://github.com/TrueNewBee/goDemo

等学完一整块,,整理博客!!!

2021-1-6 18:19:11

**因为懒省事,故只写上上课笔记,贴上代码,等学完一整块比如go基础以后,整理到自己文章里面,博客只记录当天东西**
可以去 沙河小王子博客里面看看

由于太懒,把代码放到github上了

https://github.com/TrueNewBee/goDemo

每日代码

由于这是随笔,是为了记录东西,故直接用富文本编辑器方便插入代码,等学完后可以做一个详细博客

比如把基础学完,把笔记做好,  基础+进阶+框架


1. 下go 配置环境, 系统和当前环境 改成自己工作目录,, D:\go
2. 不过1.14后不要求,可以参考这篇博客
3. https://www.liwenzhou.com/posts/Go/install_go_dev/

go evn

 

go build (推荐使用)

1.在项目目录下 go build

2. 编译到其他目录,,, go build 项目路径(从GOPATH的src后面开始)

go run 执行脚本文件

go install 分为两步:

1. 先编译得到一个可执行文件
2. 讲可执行文件拷贝到 "GOPTH D:\Go\bin"

 

### Go语言文件的基本结构

****

 

```go
package main

// 导入包
import "fmt"

// 函数外只能放置标识符(变量/常量/函数/类型)的声明

// 程序的入口函数
func main() {
fmt.Println("hello world")
}

```

 

# Go语言基础之变量和常量

[慢慢接触就认识了](https://www.liwenzhou.com/posts/Go/01_var_and_const/)

 

### 变量声明

 

变量声明后才可以使用

``var s1 string; `` 声明一个s1字符串变量

面试注意:

`iota`是go语言的常量计数器,只能在常量的表达式中使用。

`iota`在const关键字出现时将被重置为0。const中每新增一行常量声明将使`iota`计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

 

### 数据类型

 

[数据类型](https://www.liwenzhou.com/posts/Go/02_datatype/)

 

进制转换

 

### 字符串

Go语言中字符串是用双引号包裹的!

Go语言中的单引号包裹的是字符!

```go
// 字符串
s := "hello 沙河"
// 单独的字母,汉字,符号表示一个字符
c1 := \'h\'
c2 := \'1\'

// 字节: 1字节=8bit (8个进制位)
// 1个字符\'A\'=1个字节
// 1个utf8编码的汉子 \'沙\' = 一般3个字节

```

// 2021-1-4 21:40:45 明天早起继续 明天做笔记

 

**go真tm简洁,很舒服,比python爽 ,,以后早上go,下午java!!!!!**

坚持!!

 

 

for if rune 看代码 明天早上做笔记

// 99 乘法表

 

**晚上回来补笔记!** `2021-1-6 10:52:01`
`已经开始补笔记`
贴上代码
```
01day hello world
```

package main

// 导入包
import "fmt"

// 函数外只能放置标识符(变量/常量/函数/类型)的声明

// 程序的入口函数
func main() {
    fmt.Println("hello world")
}
HelloWorld
package main

import "fmt"

// Go语言中,推荐使用驼峰式命名  首字母小写
var studentName string

var student_name string
var StudentName string

// 声明变量
// var name  string
// var age int
// var isOk bool

// 批量声明
var (
    name string // ""
    age  int    // 0
    isOk bool   // flase
)

func main() {
    name = "理想"
    age = 16
    isOk = true
    // Go语言中非全局变量声明必须使用.不适用编译不过去

    fmt.Print(isOk) // 在终端中输出打印的内容
    fmt.Println()
    fmt.Printf("name: %s", name) //  &s:站位符 使用name这个变量的值去替换占位符
    fmt.Println(age)             // 打印完指定的内容之后会在后面加一个换行符

    // 声明变量同时赋值(不推荐)
    var s1 string = "who"
    fmt.Println(s1)

    // 类推导(根据值判断该变量是什么类型)
    var s2 = "20"
    fmt.Println(s2)

    // 简短变量声明,只能在函数中使用(推荐)
    s3 := "哈哈哈哈"
    fmt.Println(s3)

    // _ 为匿名变量,像一个树洞,表示忽略值
    // 函数外每个语句都必须以关键字开始
    // 同一个作用域中不能重复声明同名的变量
}
var
package main

import "fmt"

// 常量

const pi = 3.1415926

// 批量声明常量
const (
    statusOK = 200
    notFound = 404
)

// 批量声明变量时,如果某一行后没有赋值,默认就和上一行一致
const (
    n1 = 100
    n2
    n3
)

// iota  面试注意: iota是go语言的常量计数器,只能在常量表达式中使用
// 每新增一行常量, iota +1
const (
    a1 = iota // 0
    a2 = iota // 1
    a3 = iota //2
)

// 跳过
const (
    b1 = iota // 0
    b2 = iota // 1
    _  = iota // 2
    b3 = iota // 3
)

// 插队
const (
    c1 = iota // 0
    c2 = 100  // 100
    c3 = iota // 2
    c4        // 3
)

// 多个变量声明在一行
const (
    d1, d2 = iota + 1, iota + 2 //     d1 : 1  d2 : 2
    d3, d4 = iota + 1, iota + 2 //    d3 : 2     d4 : 3
)

// 定义数量级
const (
    _  = iota
    KB = 1 <<(10 * iota)
    MB = 1 <<(10 * iota)
    GB = 1 <<(10 * iota)
    TB = 1 <<(10 * iota)
    PB = 1 <<(10 * iota)
)

func main() {
    fmt.Println("n1:", n1)
    fmt.Println("n1:", n2)
    fmt.Println("n1:", n3)
    fmt.Println("n1:", a1)
    fmt.Println("n1:", a2)
    fmt.Println("n1:", a3)
}
const
package main

import "fmt"

// 整型

func main() {
    // 十进制
    var i1 = 101
    fmt.Printf("%d\n", i1)
    fmt.Printf("%d\n", i1) // 把十进制数转换成八进制
    fmt.Printf("%d\n", i1) // 把十进制数转换成十六进制

    // 八进制
    i2 := 077
    fmt.Printf("%d\n", i2)

    // 十六进制
    i3 := 0x1234567
    fmt.Printf("%d\n", i3)

    // 查看变量的类型
    fmt.Printf("%T\n", i3)

    // 声明int8类型,否则就是默认为int类型
    i4 := int8(9) // 明确指定int8类型,否则就是默认为int类型
    fmt.Printf("%T\n", i4)

}
int

// 我发现复制这好麻烦,,就直接传github上面了

直接放个目录

 


推荐阅读
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
author-avatar
mobiledu2502882247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有