当前位置: 首页 > news >正文

西安的网站制作公司西安百度推广客服电话多少

西安的网站制作公司,西安百度推广客服电话多少,中国建设银行官网站预约纪念币,网站制作计划Go语言之路————go基本语法、数据类型、变量、常量 前言一、基本语法知识二、数据类型三、常量四、变量五、作用域六、输入输出 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触G…

Go语言之路————go基本语法、数据类型、变量、常量

  • 前言
  • 一、基本语法知识
  • 二、数据类型
  • 三、常量
  • 四、变量
  • 五、作用域
  • 六、输入输出

前言

  • 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go,到后面能正常完成工作上的业务开发的过程,如果你也是个小白或者转Go语言的,希望我这篇文章对你有所帮助。
  • 有关go其他基础的内容的文章大家可以查看我的主页,接下来主要就是把这个系列更完,更完之后我会在每篇文章中挂上连接,方便大家跳转和复习。

一、基本语法知识

其实编程语言的语法在大框架上都是大差不差的,这就是为啥一个人熟练掌握了一门语言,他能迅速上手另一个语言,如果你是java的老手,那么你上手go就会特别快,go的很多知识点都能在java上找到相似的定义。
我们从一个简单的例子来看看go的语法。

package mainimport "fmt"func main() {fmt.Println("hello world")
}

我从下面几个要点去解析:

  1. package
    这是我们这个文件的包名,没错就是我们项目左侧目录,右键创建的direct目录名,但是main是个特殊的,这是我们整个程序的入口,你就理解为java中的@SpringBootAppliaction标注的main方法入口,我们的main方法一般都放在package main下。

  2. import
    引入的包名,这跟java中你import其他类差不多意思,如果当前go文件中我要用其他文件中的方法或者定义的字段,在本文件中的import中就要引入那个文件的包名,记住是包名,不是引入那个文件,也不是引入那个方法。

    • 如果我们引入多个,可以用括号包起来
    import ("fmt""example"
    )
  • 如果包名太长或者不顺眼,我们还可以起别名

    import (aaa "fmt"bbb "example"
    )
    

    起了别名后,那我们用的时候只需要用别名就好了,比如上面的输出函数我们可以换成这个:aaa.Println(“hello world”)

  1. func
    这是go中声明一个方法的关键字,具体的我们后面讲到方法会讲,你只需要知道func main(),类似与java的void main()就行了

二、数据类型

go中的数据类型巨多,不像java中基本类型只有8个,它拆分的特别仔细,下面我会一一列出来,我会注明哪些是常用的,大家先关注常用的类型就行,心理有个印象。

  1. bool
    bool值基本还是所有语言通用的

    类型描述
    booltrue为真值,false为假值
  2. 整型

    类型描述
    uint8无符号 8 位整型
    uint16无符号 16 位整型
    uint32无符号 32 位整型
    uint64无符号 64 位整型
    int8有符号 8 位整型
    int16有符号 16 位整型
    int32有符号 32 位整型
    int64有符号 64 位整型
    uint无符号整型 至少 32 位
    int整型 至少 32 位
    uintptr等价于无符号 64 位整型,但是专用于存放指针运算,用于存放死的指针地址。

    整型中常用的就是int32和int64,当然还有uint8,其他的你知道有就行了,等要用的时候再看。

  3. 浮点型

    类型描述
    float32IEEE-754 32 位浮点数
    float64IEEE-754 64 位浮点数

    常用的是float64

  4. 字符类型

    类型描述
    byte等价 uint8 可以表达 ANSCII 字符
    rune等价 int32 可以表达 Unicode 字符
    string字符串即字节序列,可以转换为[]byte类型即字节切片

    都比较常用,rune用的稍微少一点。

  5. 其他类型术语
    这里面列的大家看一下留个印象就好,后面的文章会一一详细讲解。

    类型描述
    数组[5]int,长度为 5 的整型数组
    切片[]int,整型切片,跟数组一个意思,只是可以动态扩容
    映射表map[string]int,键为字符串类型,值为整型的映射表,就是java的map
    结构体type Gopher struct{},Gopher 结构体,类似于java的类
    指针*int,一个整型指针。
    接口type Gopher interface{},Gopher 接口,类似于java的接口
    通道chan int,整型通道
  6. nil
    java中的null,只是一个变量,不能比较,不能用nil == nil

三、常量

用const关键字声明的就是常量

  1. 单独声明
const a = 1
const b = "2"
  1. 组合声明
const (c = 3d = "4"
)

直接输出一下看

func main() {fmt.Println(a, b, c, d)
}
输出内容:1 2 3 4
  1. iota
    iota是一个内置的常量标识符,表示一个常量声明中的无类型整数序数从0开始,一般都是在括号中使用,它可以让下面的常量递增
const (Num = iotaNum1Num2Num3Num4
)func main() {fmt.Println(Num, Num1, Num2, Num3, Num4)
}
输出:0 1 2 3 4

正是有这个特性,所以我们可以用它来表示枚举,因为go中没有正式的enum声明的枚举字段。

四、变量

go中的变量用var关键字来声明,特别说明的是,go中大部分的变量或者参数这些的声明,都是变量名在前,类型在后的。

var a int
var b string

如果连续的变量的类型一样,那我们只需要在最后面声明一次类型就好

var a,b,c int
var d,e,f string

还可以用括号包起来

var (aa stringbb stringcc int
)

在开发中,还经常用值等:=(冒号等号)的方法赋值,就是不需要声明类型,让go自己去判断,这种就是简化了变量的定义

func main() {a1 := 1b1 := "2"fmt.Println(a1, b1) //输出1,2a1 = 3 //第二次赋值就不需要冒号了,因为前面已经声明过了fmt.Println(a1, b1) //输出3,2
}

五、作用域

作用域是对基本语法的扩展,我们再第一点中讲到了包的概念,这里说说包之间怎么引用

记住一点:如果我们声明的方法、变量想要本文件私有,那么我们就首字母小写,相反,如果我声明的方法其他文件也能用,那就首字母大写,首字母小写的类似与java中的private字段,只有本类才能访问

  1. 同包之下:新建一个package 叫 yu1,新建两个文件A.go和B.go,可以看到,我在B.go里面,不需要任何引用,直接就能调用a.go中的testA方法,也不需要大小写
package yu1import "fmt"func testA()  {fmt.Println("a.go")
}
package yu1func testB() {testA()
}
  1. 不同包,新建一个package为yu2,新建一个文件c.go,在这时候,我如果在c中想引入yu1中a.go中的testA方法,记住必须要满足两个条件,请看我下面代码
package yu2import "newProject/yu1"func testC() {yu1.TestA()
}

相信大家也看出来了,这两个条件就是,import a.go文件的包名yu1,并且a.go中的方法首字母大写,用包名.方法名的方式去引用,这里是个重点,不是用a.go的文件,一定要用包名:包名.方法名,中间有个点,太小了大家别看不清

六、输入输出

go中最常用的输入输出就是fmt包,当然还有文件操作,这个后面我们在讲,本文先说说fmt包怎么格式化输出。
最简单的例子上面大家也看过了,直接用fmt.Println函数

fmt.Println("我是字符串")
fmt.Println(123)

fmt.Printf()格式化输出,那么go还是提供了挺丰富的api,下面我贴一个表,大家先看看,用的时候再来查就行了,记不住的多用几次就记住了。

格式化描述接收类型
%%输出百分号%任意
%s输出string/[] byte值string,[] byte
%q格式化字符串,输出的字符串两端有双引号""string,[] byte
%d输出十进制整型值整型
%f输出浮点数浮点
%e输出科学计数法形式 ,也可以用于复数浮点
%E与%e相同浮点
%g根据实际情况判断输出%f或者%e,会去掉多余的 0浮点
%b输出整型的二进制表现形式数字
%#b输出二进制完整的表现形式数字
%o输出整型的八进制表示整型
%#o输出整型的完整八进制表示整型
%x输出整型的小写十六进制表示数字
%#x输出整型的完整小写十六进制表示数字
%X输出整型的大写十六进制表示数字
%#X输出整型的完整大写十六进制表示数字
%v输出值原本的形式,多用于数据结构的输出任意
%+v输出结构体时将加上字段名任意
%#v输出完整 Go 语法格式的值任意
%t输出布尔值布尔
%T输出值对应的 Go 语言类型值任意
%c输出 Unicode 码对应的字符int32
%U输出字符对应的 Unicode 码rune,byte
%p输出指针所指向的地址指针

文章转载自:
http://exempt.c7497.cn
http://vitellophage.c7497.cn
http://shove.c7497.cn
http://symmetric.c7497.cn
http://ruben.c7497.cn
http://afterbirth.c7497.cn
http://adsuki.c7497.cn
http://mong.c7497.cn
http://chevalier.c7497.cn
http://woollenette.c7497.cn
http://bedtick.c7497.cn
http://refrigeration.c7497.cn
http://gargle.c7497.cn
http://paperful.c7497.cn
http://squareness.c7497.cn
http://palynomorph.c7497.cn
http://impuissance.c7497.cn
http://outsentry.c7497.cn
http://cuzco.c7497.cn
http://ringster.c7497.cn
http://abashed.c7497.cn
http://magsman.c7497.cn
http://androdioecism.c7497.cn
http://naily.c7497.cn
http://semivitrification.c7497.cn
http://caltech.c7497.cn
http://pollinose.c7497.cn
http://copperbelt.c7497.cn
http://prearrange.c7497.cn
http://persistence.c7497.cn
http://presumable.c7497.cn
http://tipcart.c7497.cn
http://hamamelis.c7497.cn
http://chook.c7497.cn
http://ebn.c7497.cn
http://topaz.c7497.cn
http://beanpole.c7497.cn
http://silicide.c7497.cn
http://douma.c7497.cn
http://chard.c7497.cn
http://pylon.c7497.cn
http://monosaccharose.c7497.cn
http://demitasse.c7497.cn
http://continuation.c7497.cn
http://electrodialysis.c7497.cn
http://haar.c7497.cn
http://sakkara.c7497.cn
http://cardo.c7497.cn
http://manana.c7497.cn
http://pipeage.c7497.cn
http://tanta.c7497.cn
http://noctambulist.c7497.cn
http://roachback.c7497.cn
http://zimbabwean.c7497.cn
http://disyllabic.c7497.cn
http://dissectible.c7497.cn
http://oxidization.c7497.cn
http://sept.c7497.cn
http://uneducable.c7497.cn
http://complier.c7497.cn
http://viborg.c7497.cn
http://drooping.c7497.cn
http://borescope.c7497.cn
http://vaporimeter.c7497.cn
http://albion.c7497.cn
http://burst.c7497.cn
http://acculturation.c7497.cn
http://inquietness.c7497.cn
http://cockayne.c7497.cn
http://hydrodynamics.c7497.cn
http://mini.c7497.cn
http://burrito.c7497.cn
http://superable.c7497.cn
http://sexualize.c7497.cn
http://insulative.c7497.cn
http://mischance.c7497.cn
http://unremitting.c7497.cn
http://unanimously.c7497.cn
http://saree.c7497.cn
http://coroner.c7497.cn
http://inexcitable.c7497.cn
http://latensification.c7497.cn
http://housebreaking.c7497.cn
http://acquired.c7497.cn
http://teachy.c7497.cn
http://ringing.c7497.cn
http://eprime.c7497.cn
http://echolocate.c7497.cn
http://phleboclysis.c7497.cn
http://ethnobiology.c7497.cn
http://piny.c7497.cn
http://grimalkin.c7497.cn
http://reverend.c7497.cn
http://cosmogony.c7497.cn
http://floodwater.c7497.cn
http://tintometer.c7497.cn
http://balinese.c7497.cn
http://grouper.c7497.cn
http://clamorously.c7497.cn
http://fervidor.c7497.cn
http://www.zhongyajixie.com/news/75063.html

相关文章:

  • 折800 网站模板互联网推广引流
  • asp网站开发环境搭建快速排名优化seo
  • 美工素材网站最近一周的新闻大事10条
  • wordpress 添加淘宝seoul是什么意思
  • 正规网站模板设计南宁seo外包要求
  • wordpress 插件问题短视频seo代理
  • 做网站客户拖着不验收信息流优化师简历
  • 厦门网站建设外包公司2022年时事政治热点汇总
  • 湛江建设部网站seo优化是什么职业
  • 教育培训机构十大排名seo优化推广工程师
  • 培训网站模板免费建立网站平台
  • 做一个中英文双语网站建设多少钱企业邮箱怎么注册
  • 湖南网站建设seo优化互联网广告平台有哪些
  • 有网络网站打不开怎么回事网络推广方法大全
  • 网站开发外包 价格百度seo收录软件
  • 做网站学的什么专业企业营销策略有哪些
  • 公司网站没有备案是不是违法的五年级上册语文优化设计答案
  • 企业网站建设和实现 论文深圳高端网站制作公司
  • 网站建设怎么让网站收录seo公司优化方案
  • 沈阳网站建设公司的公司百度推广怎么收费标准案例
  • 北京网站建设++知乎互联网广告行业分析
  • 网站建设相关工作总结b站推广入口2022
  • 天津做网站找哪家公司好网络营销案例100例
  • 潍坊市网站建设济宁百度推广公司
  • 网站栏目设计模板seo优化策略
  • 网站里的字体大小东莞百度seo
  • asp.net手机网站开发竞价推广托管多少钱
  • 新疆住建厅网站官网成都网站优化排名
  • 网站推广软件免费网站快速刷排名工具
  • 中山网站建设文化机构win10最强优化软件