关于go语言10进制表达式的信息

go语言中全局变量和局部变量的区别

局部变量

昔阳网站建设公司创新互联公司,昔阳网站设计制作,有大型网站制作公司丰富经验。已为昔阳1000多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的昔阳做网站的公司定做!

在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。

以下实例中 main() 函数使用了局部变量 a, b, c:

package main

import "fmt"

func main() {

/* 声明局部变量 */

var a, b, c int

/* 初始化参数 */

a = 10

b = 20

c = a + b

fmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)

}

以上实例执行输出结果为:

结果: a = 10, b = 20 and c = 30

全局变量

在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。

全局变量可以在任何函数中使用,以下实例演示了如何使用全局变量:

package main

import "fmt"

/* 声明全局变量 */

var g int

func main() {

/* 声明局部变量 */

var a, b int

/* 初始化参数 */

a = 10

b = 20

g = a + b

fmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)

}

以上实例执行输出结果为:

结果: a = 10, b = 20 and g = 30

Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。实例如下:

package main

import "fmt"

/* 声明全局变量 */

var g int = 20

func main() {

/* 声明局部变量 */

var g int = 10

fmt.Printf ("结果: g = %d\n", g)

}

以上实例执行输出结果为:

结果: g = 10

Go语言中new和 make的区别详解

new 主要用于结构体的初始化

make用于数组array,切片slice,协程chnnel的初始化

例如: users:=make([10]int);

msg:=make(chan int);

new会分配结构空间,并初始化为清空为零,不进一步初始化

new之后需要一个指针来指向这个结构

make会分配结构空间及其附属空间,并完成其间的指针初始化

make返回这个结构空间,不另外分配一个指针

例子new:

var p *[]int = new([]int)

p := new([]int)

以上分配了一个slice结构,但是结构中的应该指向底层数组的ptr指针为空,故实际不能往这个slice里面存取数据

同时分配了一个指针p,也即(在32位系统中)占4个字节并存放slice结构的地址

例子make:

var v []int = make([]int, 0)

v := make([]int, 0)

以上分配了一个slice结构,且结构中的应该指向底层数组的ptr指针已经指向了某个底层数组,这个底层数组应该已经分配了,故这个slice已经可以使用了

注意v就是这个slice结构,而不是一个指向slice的指针

上述仅是示例,一般使用时都会明确长度和容量:v := make([]int, 10, 50)

结论:

由上可见,用new来分配slice的意义不大,因为没有恰当的初始化,无法直接使用

有附带空间的结构,使用make来初始化,可以完成内部指针初始化,其后可以立即使用

Go语言输出打印--排坑

一.几种公共方法

1)Print:   输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v)

print 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它。可以再debug时候用

2)Println: 输出到控制台并换行

3)Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形等)

4)Sprintf:格式化并返回一个字符串而不带任何输出

5)Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout

二.带占位符输出--网址:    

和python差不多的道理,这里简单补充

v     值的默认格式

%+v   添加字段名(如结构体)

%#v  相应值的Go语法表示 

%T    相应值的类型的Go语法表示 

%%    字面上的百分号,并非值的占位符

%c     相应Unicode码点所表示的字符 

%x     十六进制表示,字母形式为小写 a-f

%X     十六进制表示,字母形式为大写 A-F

%U     Unicode格式:U+1234,等同于 "U+%04X"

【10】Go语言运算符及运算符的优先级

运算符用于在程序运行时执行数学或逻辑运算。

1.算术运算符

Go 语言的算术运算符如图,假设A值为10,B值为20。

2.关系运算符

Go 语言的关系运算符如图,假设A值为10,B值为20。

3.逻辑运算符

Go 语言的逻辑运算符如图。假定A值为True,B值为False。

4.位运算符

位运算符对整数在内存中的二进制位进行操作。

位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不可少的。

Go 语言的位运算符如图。假定 A = 60,B = 13,其二进制数转换如下。

A = 0011 1100

B = 0000 1101

5.赋值运算符

Go 语言的赋值运算符如图。

6.其他运算符

Go 语言的其他运算符如图。

运算符的优先级

所谓优先级,就是当多个运算符出现在同一个表达式中时,先执行哪个运算符。


网站栏目:关于go语言10进制表达式的信息
本文来源:http://hbruida.cn/article/dsscsos.html