golang基础<2>

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

以下主要描述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

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