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

Golang基础【防备忘】

Golang基础常量关于const的用法constobj1stringCJSconstobj2NB也可把tped去掉,系统会自动识别类型const(Su


Golang 基础



  1. 常量

//关于const的用法
const obj1 string = "CJS"
const obj2 = "NB" //也可把tped去掉,系统会自动识别类型const (Sunday = 7Monday = 1Tuesday = 2Wednesday = 3Thursday = 4Friday = 5Saturday = 6
)
//关于iota的用法,有点复杂,使用的时候,先进行测试
//以后可以使用iota,优雅的解决很多问题
const (Sunday = 7Monday = iota //1Tuesday //2Wednesday //3Thursday //4Friday //5Saturday //6
)

  1. 变量定义

var a,b int
var c string
或者
var( //这种写法一般用于声明全局变量a int //初始化为0b string //初始为空字符串c float64 //初始化为0.0d bool //初始化为flase
)

  1. 变量初始化的几种情况

var a int = 100
var b = "cjs" //自动识别类型
var (c = 1d = "nb"
)
e := true //直接赋值

  1. 值类型与引用类型

int、float、boolstring
以及 数组 和 结构体 都属于值类型
啥是值类型,就是将一个变量的值可以通过“=”赋值给另一个变量
注意的是,这里的数组也是直接赋值,不用一个一个传指针、切片、map、channel都属于引用类型

  1. init函数

变量除了可以在全局声明中初始化,也可以在 init 函数中初始化。
这是一类非常特殊的函数,它不能够被人为调用,而是在每个包完成初始化后自动执行,
并且执行优先级比 main 函数高。每个源文件都只能包含一个 init 函数。初始化总是以单线程执行,并且按照包的依赖关系顺序执行。package transimport "math"var Pi float64func init() {Pi = 4 * math.Atan(1) // init() function computes Pi
}

  1. go中的数字类型

整型
intuint
32 位操作系统上,它们均使用 32 位(4 个字节),
64 位操作系统上,它们均使用 64 位(8 个字节)。
uintptr 的长度被设定为足够存放一个指针即可。
整数:int8(-128 -> 127)
int16(-32768 -> 32767)
int32(-2,147,483,648 -> 2,147,483,647)
int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
无符号整数:uint8(0 -> 255)
uint16(0 -> 65,535)
uint32(0 -> 4,294,967,295)
uint64(0 -> 18,446,744,073,709,551,615)浮点型
go是没有float类型的,也没有double类型
只有float32float64类型
尽可能的使用float64类型,因为math、库里都是flaot64类型
Go 中不允许不同类型之间的混合使用

  1. 一些注意

取余运算只能作用于整数++--只能用于后缀,且只能作为单独语句,不能作为表达式var arr = 100var brr intarr++ //正确++arr //错误brr = arr++ //错误fmt.Println(arr)fmt.Println(brr)

  1. 类型别名

type TZ int
type ST string
类型别名,得到的新类型,并非和原类型完全相同

  1. 字符类型

严格来说,这并不是 Go 语言的一个类型,字符只是整数的特殊用例。
byte 类型是 uint8 的别名,对于只占用 1 个字节的传统 ASCII 编码的字符来说,完全没有问题。
例如:var ch byte = 'A';字符使用单引号括起来。

  1. 循环结构

if-else
类似C语言的用法,{if在同一行,else if也在同一行
可以在ifelse-if行,做初始化,即 if n:=10;n>=i{ }switch
类似C语言的用法,且没有break
如果想继续执行后面的内容,你懂的,用fallthroughfor
GO语言没有while 只能用for代替
for有与C语言一样的用法
for true/或者一个表达式{死循环
}
for i,x:=range obj{ } 的用法
这里注意下,x为接收每一个里面的值,这是拷贝,并非引用,改变x的值,不会对原数组或切点产生变化

  1. break与continue

break只能跳出最内层循环
continue 都懂

推荐阅读
  • vue使用
    关键词: ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文讨论了为什么在main.js中写import不会全局生效的问题,并提供了解决方案。在每一个vue文件中都需要写import语句才能使其生效,而在main.js中写import语句则不会全局生效。本文还介绍了使用Swal和sweetalert2库的示例。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
author-avatar
Wang嘉伟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有