Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[日常] Go语言圣经--复数,布尔值,字符串习题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

go语言圣经-复数

1.我们把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。两种精度的复数类型:complex64和complex128,分别对应float32和float64两种浮点数精度

2.complex@L_874_0@用于构建复数,real和imag@L_874_0@分别返回复数的实部和虚部

go语言圣经-布尔型

1.布尔值可以和&&(AND)和||(OR)操作符结合,并且有短路行为

2.&&的优先级比||高

go语言圣经-字符串

1.一个字符串是一个不可改变的字节序列,文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列

2.内置的len@L_874_0@可以返回一个字符串中的字节数目,不是字符数目,对于非ASCII字符的UTF8编码会要两个或多个字节

3.+操作符将两个字符串链接构造一个新字符串

4.字符串值也可以用字符串面值方式编写,只要将一系列字节序列包含在双引号即可

5.原生的字符串面值形式是`...`,使用反引号代替双引号用于编写正则表达式,HTML模板、JSON面值、命令行提示信息会很方便

6.UTF8是一个将unicode码点编码为字节序列的变长编码,Go语言的源文件采用UTF8编码,并且Go语言处理UTF8编码的文本也很出色,Go语言的range循环在处理字符串的时候,会自动隐式解码UTF8字符串

7.每个符号都分配一个唯一的Unicode码点,Unicode码点对应Go语言中的rune整数类型(译注:rune是int32等价类型)。小于256码点值可以写在一个十六进制转义字节中,例如\x41对应字符'A',更大的码点则必须使用\u或\U转义形式

7.utf8.RuneCountinstring(s)@L_874_0@ @L_675_16@字符个数

8.四个包对字符串处理尤为重要:bytes、Strings、strconv和unicode包

9.将一个整数转为字符串,一种方法是用fmt.Sprintf返回一个格式化的字符串;另一个方法是用strconv.Itoa(“整数到ASCII”):

10.字符串转换成整数 strconv.ParseInt  strconv.ParseFloat

练习 3.10: 编写一个非递归版本的comma@L_874_0@,使用bytes.buffer代替字符串链接操作。

练习 3.11: 完善comma@L_874_0@,以支持浮点数处理和一个可选的正负号的处理。

练习 3.12: 编写一个@L_874_0@,判断两个字符串是否是是相互打乱的,也就是说它们有着相同的字符,但是对应不同的顺序。

Highlighter">

import(
"fmt"
"Strings"
"bytes"
)

func main(){
fmt.Println(comma(-5123456.23))
fmt.Println(compare("abec","ecab"))
}
/*
练习 3.10: 编写一个非递归版本的comma函数,使用bytes.buffer代替字符串链接操作。

练习 3.11: 完善comma函数,以支持浮点数处理和一个可选的正负号的处理。
*/
func comma(str float64)String{
//整型转换成字符串
s := fmt.Sprintf("%.2f",str)
//取出小数点后面部分
var end String
if Dot := Strings.LasTindex(s,"."); dot >= 0 {
end = s[dot:]
s = s[:dot]
}
num := len(s)
var buf bytes.buffer
j := 1
for i:=num-1;i>=0;i--{
buf.WriteByte(s[i])
if j%3==0 && i!=0{
buf.WriteString(",")
}
j++
}
res:=buf.String()
var r bytes.buffer
//反转字符串
for i:=len(res)-1;i>=0;i--{
r.WriteByte(res[i])
}
r.WriteString(end)
return r.String()
}
//练习 3.12: 编写一个@L_874_0@,判断两个字符串是否是是相互打乱的,也就是说它们有着相同的字符,但是对应不同的顺序。
func compare(str1 String,str2 String)bool{
//比较两个字符串的长度,外层循环是较长的
num1:=Strings.Count(str1,"")
num2:=Strings.Count(str2,"")
if num2 > num1{
str1,str2=str2,str1
}
var res bool
for ,v :=range str1{
res = false
for
,sv :=range str2{
if v== sv{
res =true
}
}
if !res{
break
}
}
return res
}

[日常] Go语言圣经--复数,布尔值,字符串习题

大佬总结

以上是大佬教程为你收集整理的[日常] Go语言圣经--复数,布尔值,字符串习题全部内容,希望文章能够帮你解决[日常] Go语言圣经--复数,布尔值,字符串习题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: