分享
  1. 首页
  2. 文章

golang基础<2>

cw2030 · · 2085 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

以下主要描述Go语言程序结构。

一、名称的定义规范

这里包括函数、变量、常量、类型、语句标签以及包的名称都必须以字母或下划线开头,后面可以跟任意数量的字符、数字和下划线,在golang中,名称是区分大小写的,如:

var Age int8与var age int8是两个不相同的变量,golang中的关键字和内置的常量、类型和函数不能作为名称来使用。

(1)关键字:

  • var和const :变量和常量的声明
  • var varName type 或者 varName : = value
  • package and import: 导入
  • func: 用于定义函数和方法
  • return :用于从函数返回
  • defer someCode :在函数退出之前执行
  • go : 用于并行
  • select 用于选择不同类型的通讯
  • interface 用于定义接口
  • struct 用于定义抽象数据类型
  • break、case、continue、for、fallthrough、else、if、switch、goto、default 流程控制
  • chan用于channel通讯
  • type用于声明自定义类型
  • map用于声明map类型数据
  • range用于读取slice、map、channel数据

(2)内置的常量、类型以及函数

常量:true false iota nil

类型:int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr

float32 float64 complex128 complex64 bool byte rune string error

函数:make len cap new append copy close delete panic recover complex real imag

golang的名称的采用驼峰的写法风格,与java等语言类似。

二、变量

通常变量定义的方式是:var name type = expression,其中type的expression可以省略一个,如:

var userName string

var userName = "zhangsan"

1、短变量

通常用于函数体中,主要用来声明和初始化局部变量,定义格式:name := expression,name的类型有expression来决定,如:

userName := "zhangsan" //这里边userName就是一个字符类型

i := 2 //这里边的i就是一个int类型

不管是短变量还是一般变量都支持一次声明多个,如:

userName, i := "zhangsan", 2

var userName, i = "zhangsan", 2

2、指针

指针的值是一个变量的地址,一个指针指示值所保存的位置,如:

var x int

那么&x表达式是一个指向整型变量的指针,它的类型是整型指针(*int),如果&x的值叫做p,那么p是包含x的地址,p指向的变量写*p,表达式*p是获取变量的值。

例子:

x := 1
var p *int = &x
fmt.Println(*p) //这里输出的是1
*p = 2  //等价与x=2
fmt.Println(x) //结果是2

3、new 函数

创建变量的另外一种方法是使用new 函数,格式 :new(T),T表示类型,它表示创建一个T类型的变量,初始化为T类型的零值,并返回其地址,即*T类型,如:

p := new(int) //p的类型为*int,初始值为0

三、变量的作用域

用实例来说明

package shop
import (
 "fmt"
)
var Global int; //函数体外声明,且是大写字母开头的变量属于全局变量
var j int; //函数体外声明,小写字母开头的是包(package)级别的变量
//该小写字母开头函数数包级别的
func shopping(){
 k := 1 //函数体内的变量
 fmt.Print("shop")
 for{
 m : =1 //程序块内的变量,仅在本程序块使用,程序块是指一对{}
 fmt.Println(k,m)
 } 
}
//该大写字母开头函数属于全局级别
func GoShopping(){
 
}

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:cw2030

查看原文:golang基础<2>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2085 次点击
被以下专栏收入,发现更多相似内容
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏