内容简介:6、go没有字符类型(char),一般用byte类型来表示,并且go中的编码是统一使用utf8,每个字符都会有一个固定的码值12、包内变量名和函数名以及常量名,首字母大写为公开方法(相当于其他语言的public)其他包可使用,首字母小写为私有方法(相当于其他语言的private)其他包不能使用
1、变量定义的几种方式 如:
//方式一:普通定义 var a int = 1 fmt.Println("a = ", a) //方式二:类型推导 var b = 10 fmt.Println("b = ", b) //方式三:省略var name := "tom" fmt.Println("name = ", name) //多变量声明 var n1, n2, n3 int fmt.Println("n1 = ",n1 ,"n2 = ", n2,"n3 = ",n3) var n4, name1, n5 = 100, "tom", 888 fmt.Println("n4 = ",n4 ,"name1 = ", name1,"n5 = ",n5) n6, name2, n7 := 100, "tom", 888 fmt.Println("n6 = ",n6 ,"name2 = ", name2,"n7 = ",n7)
2、 go 语言定义的变量或引入的包没有使用的话不能编译通过,可以使用忽略保留定义和包引入 如:
package main import ( "fmt" _ "bytes" //忽略bytes包 ) func main () { var num1 int = 10 _ = num1 //忽略变量 fmt.Println("hello world") }
3、自动整理格式化代码指令
//自动整理格式化输出 linux~# gofmt hello.go package main import "fmt" func main() { fmt.Println("hello world") } //将整理格式化后的类容保存文件 linux~# gofmt -w hello.go
4、大括号不能换行
//正确的 func main () { fmt.Println("hello world") } //错误的 func main () { fmt.Println("hello world") }
5、变量多值的返回与接收
package main import ( "fmt" ) func main () { var num1 int = 10 var num2 int = 1 //接收两个值 sum , sub := getSumAndSub(num1, num2) fmt.Println("sum =",sum, "sub =", sub) //只接收一个值 sum0 , _ := getSumAndSub(num1, num2) fmt.Println("sum =",sum0) } func getSumAndSub(num1 int, num2 int) (int, int) { sum := num1 + num2 sub := num1 - num2 return sum, sub }
6、go没有字符类型(char),一般用byte类型来表示,并且go中的编码是统一使用utf8,每个字符都会有一个固定的码值
//go没有字符类型 var c1 byte = 'a' var c2 byte = '1' //输出的都是码值 fmt.Println("c1", c1, "c2", c2) //输出对应的字符 fmt.Printf("c1=%c c2=%c", c1, c2) //汉字 var c3 byte = '被'//溢出 fmt.Printf("c3=%c c3码值=%d", c3, c3) var c4 int = '被' fmt.Printf("c4=%c c4码值=%d", c4, c4) //输出码值对应的字符 var c5 int = 22269 fmt.Printf("c5=%c", c5)
7、字符串(string)一旦赋值就不能通过下标来修改
var str2 = "hello" //str2[0] = 'a' //报错
8、以字符串原生方式输出
var str string = `每个生命的方式是自然界一种力的方式。 有些人的生命像沉静的湖,有些像白云飘荡的一望无际的天空, 有些像丰腴富饶的平原,有些像断断续续的山峰。 我觉得约翰·克利斯朵夫的生命像一条河。 ——罗曼.罗兰《约翰·克利斯朵夫》` fmt.Println(str)
9、字符串+号拼接
//加号放在上一行末尾 str4 := "hello" + "world" fmt.Println("str4 = ", str4)
10、与 Java 、c相比go的不同类型数据之间转换需要强制转换(显示转换)
var i int32 = 10 var f1 float32 = float32(i) fmt.Println("f1 = ", f1) var n1 int32 = 1 var n2 int8 var n3 int8 n2 = int8(n1) + 127 //编译能过,但结果溢出 //n3 = int(n1) + 128 //n3是int8 报错 fmt.Println("n1 =", n1, "n2 =", n2," n3 =",n3)
11、string类型与其他基本类型之间的互相转换
其他基本数据类型转string
//第一种方式 fmt.Sprintf str = fmt.Sprintf("%d", num1) fmt.Printf("str type %T str=%v\n", str, str) str = fmt.Sprintf("%f", num2) fmt.Printf("str type %T str=%v\n", str, str) str = fmt.Sprintf("%t", b) fmt.Printf("str type %T str=%v\n", str, str) str = fmt.Sprintf("%c", ch) fmt.Printf("str type %T str=%v\n", str, str) //第二种方式 strconv str = strconv.FormatInt(int64(num1), 10) fmt.Printf("str type %T str=%v\n", str, str)
string类型转其他基本数据类型
var str1 string = "true" var b bool b, _ = strconv.ParseBool(str1) fmt.Printf("b type %T b=%v\n", b, b) var str2 string = "123456" var n1 int64 n1, _ = strconv.ParseInt(str2, 10, 64) fmt.Printf("n1 type %T n1=%v\n", n1, n1) var str3 string = "123dd456" var n2 int64 n2, _ = strconv.ParseInt(str3, 10, 64) fmt.Printf("n1 type %T n1=%v\n", n2, n2) var str4 string = "123" var n3 int64 n3, _ = strconv.ParseInt(str4, 10, 64) n5 := int(n3) fmt.Printf("n3 type %T n1=%v\n", n3, n3) fmt.Printf("n5 type %T n1=%v\n", n5, n5) var str5 string = "123.456" var n4 float64 n4, _ = strconv.ParseFloat(str5, 64) fmt.Printf("n1 type %T n1=%v\n", n4, n4)
12、包内变量名和函数名以及常量名,首字母大写为公开方法(相当于其他语言的public)其他包可使用,首字母小写为私有方法(相当于其他语言的private)其他包不能使用
var HeroName string = "张飞" //公共 public var ambitiousName string = "曹操" //私有 private
13、只有i++和i--,并且只能单独使用不能赋值
//++ -- 只能独立使用 var i = 8 i++ fmt.Println("i =",i) i-- fmt.Println("i =",i) //错误使用 ++i //错误 --i //错误 var j int; j = i++ //错误 if i++ > 10 { //错误 return }
以上所述就是小编给大家介绍的《Golang一些有趣的特性》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 『互联网架构』软件架构-redis特性和集群特性(中)(49)
- 『互联网架构』软件架构-redis特性和集群特性(上)(48)
- 『互联网架构』软件架构-redis特性和集群特性(下)(50)
- JDK 14 功能特性
- C# 特性(Attribute)
- python—高级特性
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithm Analysis in Java
Mark A. Weiss / Pearson / 2011-11-18 / GBP 129.99
Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course wa......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
HEX HSV 转换工具
HEX HSV 互换工具