Go-数据类型以及变量,常量,函数,包的使用

一.数据类型

1.字符串类型

string
-双引号包裹的:"xxx"
-反引号包裹,可以换行,
注意:
区别于python,是没有单引号,三引号的
用法:
var s string=`
你好
我好
大家好
`
var b string="你好\n" +
"我好" +
"大家好"

2.数字类型

有符号整型(整数 含正负):

  • int: int 在32位机器上是int32 在64位机器是int64
  • int8: 表示占一个字节(8个比特位)表示的范围是:正负2的7次方-1
  • int16: 表示占两个字节(16个比特位)表示的范围是:正负2的15次方-1
  • int32: 类似int8
  • int64: 类似int8

无符号整型(正整数 ):

  • uint :uint 在32位机器上是uint32 在64位机器是uint64
  • uint8 : int8 表示数字范围是 正2的8次方-1
  • uint16
  • uint32
  • uint64

浮点型

float32 : 有符号小数,32后7位

float64: 64 有符号小数,32后7位

都是表示小数点后范围不一样(代码里面没有float,只有float64和float32)

complex64: 32 位实数和虚数

complex128: 64 位实数和虚数

别名

  • rune:rune是int32的别名
  • byte:byte 是uint8的别名

3.布尔类型(首字母小写)

false 和 true

4.派生类型(简单介绍)

指针类型(Pointer)

数组类型

结构化类型(struct)

Channel 类型

函数类型

切片类型

接口类型(interface)

Map 类型

二.变量的声明

方式一(全定义)

单个变量

var 变量名 变量数据类型=变量值

多个变量

a,b,c都为string必须3个变量类型相同

var a,b,c string="1","2","3"   //注意string必须是双引号

方式二(类型推导) 类型可以省略

单个变量

var 变量名 =变量值

多个变量

a,c为string,b为int

a,b,c三个变量类型不同也可以声明
var a,b,c="1",2,"3"

方式三(简略声明)

单个变量

变量名 := 变量值  //注意点:= 必须连着不能有空格

多个变量

a,b,c都为string

a,b,c三个变量类型不同也可以声明
a,b,c :="1",2,"3"

注意点

  • 同一变量名不能重复声明
  • 变量定义和赋初值(int 空值是 0 string空值是 "")
  • 变量要先定义后才可以赋值再使用
  • 变量名定义后必须使用,否则报错
  • 可以声明多个变量(三种方式都可以用)
  • 如果声明后的变量需要修改值用=
var a int
a=100

三.常量的声明

方式一

const 变量名 变量类型 =值

方式二

const 变量名 =值
package main

import "fmt"

//程序运行期间不允许修改
//数据库,redis连接
//const关键字 常量名 =常量值 赋值一次,不允许修改
//const NAME = "cxk"
//const NAME string = "cxk"
const sex = true
func main() {
//fmt.Println(NAME)
//fmt.Println(sex)
//sex=false fmt.Println(sex)
}

注意点

常量一旦被定义赋值后将无法第二次修改

四、函数的使用

无参数无返回值

方式一
func 函数名()(){} 方式二
func 函数名(){}

无参数有返回值

方式一
func 函数名()(返回参数1的数据类型1){}

定长参数,有返回值

func 函数名(参数1 类型,参数2 类型)(返回参数1的数据类型1,返回参数2的数据类型){}
//如果参数1与参数2的数据类型相同
func 函数名(参数1,参数2 类型)(返回参数1的数据类型1,返回参数2的数据类型){}
//如果参数1与参数2的数据类型为int,参数3数据类型为uint
func 函数名(参数1,参数2 int,参数3 uint)(返回参数1的数据类型1,返回参数2的数据类型){}

定长参数,无回值

//方式一
func 函数名(参数1 类型,参数2 类型){} //方式二
func 函数名(参数1 类型,参数2 类型)(){}

不定长参数

//方式一
func 函数名(不定长参数1 ...类型){} //有定长参数和不定长参数
func 函数名(定长参数 类型,不定长参数1 ... 类型){}
//不定长的参数必须写在定长的参数后面 //不定长参数所有数据类型
func 函数名(不定长参数1... interface{}){}

匿名函数

//定义
func (参数一,参数二)(返回参数1的数据类型1){return 1 }
//定义+调用
func (参数一,参数二)(返回参数1的数据类型1){return 1 }()

命名返回值

package main

import "fmt"

func abc()(a int,b int){
//var a,b int 相当于默认执行这条
//但是ab只在函数内生效函数外部生效
return
//return 与return a,b是一样的
}
func main() {
fmt.Println(abc())
}

注意点

  • 由于是编译型语言main 与main里面使用的函数不需要注意先后关系
  • 没有关键字传参
  • 没有默认参数
  • 函数没有缩进的约数,但是为了排版还是要注意缩进不然会看上去非常非常

函数使用实例:

//函数
package main func main() { //test()
//test(3,4,"xxx") //没有关键字参数一说,都按位置传,也没有默认参数
//test(3,4,"xxx") //三种方法调用
//var a int =test(3,4) //定义变量a接收返回值
//var a =test(3,4)
//a :=test(3,4)
//fmt.Println(a)
//返回两个值,就要用两个值来接受
//a,b:=test(3,4) //这种用的多
//var a,b int=test(3,4)
//var a,b =test(3,4)
//fmt.Println(a,b)
//如果有个值不想接收
// _,a,_:=test(3,4)
//fmt.Println(a)
// py中 _ 是一个真正的变量,go中,就是没有
//fmt.Println(_) test(1,2,3,4,5,5,6,7)
}
//func关键字 函数名(参数1 参数类型,参数2 参数类型)(){
//函数体的内容
//}
//函数使用1(没有先定义再使用这一说)
//func test() {
// fmt.Println("我是test")
//}
//函数使用2 带参数
//func test(a int,b int,c string) {
// fmt.Println(a+b)
// fmt.Println(c)
//} //函数使用3
//func test(a ,b int,c string) {
// fmt.Println(a+b)
// fmt.Println(c)
//} ////函数使用 4 规定返回值类型
//func test(a,b int) int {
// //返回a+b的结果
// return a+b
//} //函数使用 5 规定返回值类型,返回多个值
//func test(a,b int) (int,int,string) {
// //返回a+b的结果
// return a+b,a*b,"ok"
//} //函数使用6 不定长参数
//func test(z ...int) {
// fmt.Println(z)
//
//}

五、包的使用

包的介绍以及使用

为什么使用包?

为了更加好的维护代码

包的位置?

必须在GOPATH路径的src

能导入的内容?

导入的内容名称必须是大写字母开头不然无法导入包

src中的一个文件夹为一个包

包内的变量以及函数名

在同一文件夹下,就相当于同一包中,任何变量名不能进行二次定义

在同一包中,可以互相使用其他GO文件下的函数且不需要导入

go 程序中必须有一个main和一个main入口

如果不是package main他就是一个包,他会把里面的函数都进行保存,不能有main函数

main`也是一个特殊的包,其中必须要有main函数,作为程序的入口,也就是执行这个文件的时候其中就是运行`main函数

导入第三方模块

语法:go get 第三方模块路径

文件会被安装在GOPATH路径的src文件夹下

Go-数据类型以及变量,常量,函数,包的使用的更多相关文章

  1. Go语言从入门到放弃(一) 变量/常量/函数

    HelloWorld 我们先看看一个最简单的HelloWorld代码 package main import "fmt" func main() { fmt.Println(&qu ...

  2. iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明

    iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业 ...

  3. C语言基础知识点整理(函数/变量/常量/指针/数组/结构体)

    函数 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ...

  4. go 【第二篇】包、变量、函数

    包 初试 每个 Go 程序都是由包组成的. 程序运行的入口是包 `main`. 这个程序使用并导入了包 "fmt" 和 `"math/rand"`. 按照惯例, ...

  5. Go语言_包、变量和函数

    包.变量和函数 学习 Go 程序的基本结构. Go 作者组编写,Go-zh 小组翻译. https://go-zh.org 包 每个 Go 程序都是由包构成的. 程序从 main 包开始运行. 本程序 ...

  6. 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收

    JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...

  7. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  8. JavaScript -- 时光流逝(一):数据类型,变量,类型转换,函数

    JavaScript -- 知识点回顾篇(一):数据类型,变量,类型转换,函数 1. 数据类型 Boolean:值类型,布尔(逻辑)只能有两个值:true 或 false. Number:值类型,Ja ...

  9. JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

    JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...

随机推荐

  1. vue打包成app后,点击手机上的物理返回按钮后直接退出app

    在浏览器上浏览vue项目时,后退按钮是可以正常返回上一页的,但是打包成app后,点击手机上的屋里返回按钮,就直接退出app回到桌面了, 以下是解决办法: 使用mui进行手机的物理键的监听 1.首先安装 ...

  2. python学习笔记(27)-unittest单元测试-测试用例

    单元测试 #单元测试 #unittest+接口 unittest python自带 pytest+jenkins+allure #接口测试的本质 就是测试类里面的函数 #单元测试的本质 测试函数 代码 ...

  3. 解决python pip 出现read time out问题

    出现read time out问题是一般由于python包被墙导致下载速度变慢,pip下载超时. 解决方法一: 添加 --default-timeout:自定义timeout时间,一般能解决大部分ti ...

  4. spark-shell使用指南. - 韩禹的博客

    在2.0版本之前,Spark的主要编程接口是RDD(弹性分布式数据集),在2.0之后,则主推Dataset,他与RDD一样是强类型,但更加优化.RDD接口仍然支持,但为了更优性能考虑还是用Datase ...

  5. 安装Rational Rose启动报错:无法启动此程序,因为计算机中丢失 suite objects.dll。

    运行Rational Rose的时候如果出现这样的错误,先检查环境变量有没有common的地址,如果没有直接配上就OK:配置如下:D:\Program Files\Rational\Common; 我 ...

  6. 在Linux生成公钥后,使用git拉代码仍然需要密码的问题

    一顿回车生成公钥后,用git拉代码还是需要输入密码 原因比较简单,在于.ssh 文件夹 及 authorized_keys文件的权限问题,全部修改为 700 即可,用下面命令 chmod -R 700 ...

  7. ReactJS - 组件的生命周期

    组件的生命周期分为三个状态 Mounting: 已插入真实DOM Updateing: 正在被重新渲染 Unmounting: 已移出真实DOM React 为每个状态都提供了两种处理函数,即函数在进 ...

  8. Spring Security Config : 注解 EnableWebSecurity 启用Web安全

    https://blog.csdn.net/andy_zhang2007/article/details/90023901

  9. 吴裕雄--天生自然python学习笔记:抓取网络公开数据

    当前,有许多政府或企事业单位会在网上为公众提供相关的公开数据.以 http://api.help.bj.cn/api/均 .cn/api /网站为例,打开这个链接,大家可以看到多种可供调用的数据 . ...

  10. 3DMAX安装未完成,某些产品无法安装的解决方法

    3DMAX提示安装未完成,某些产品无法安装该怎样解决呢?,一些朋友在win7或者win10系统下安装3DMAX失败提示3DMAX安装未完成,某些产品无法安装,也有时候想重新安装3DMAX的时候会出现本 ...