Go----GoLand注意事项五

注意事项五

1)字符串遍历:按字节(使用byte)、按字符(使用rune)

2)strings包的字符串处理函数

---------------------------------------------------------------检索字符串-----------------------------------------------------
func  Contains(s, substr string) bool--判断s是否包含substr       func ContainsAny(sm chars string) bool--判断s是否包含chars中的任一字符
func HasPrefix(s,prefix string) bool--判断s是否有前缀字符串prefix    func HasSuffix(s,suffix string) bool--判断s是否有后缀字符串suffix
func ContainsRune(s string, r rune) bool--判断s是否包含unicode码值r----rune 类型等价于 int32 类型

func Count(s,sep string) int--返回s包含sep的个数    func IndexRune(s string, r rune) int---返回unicode码值r在s中首次出现的位置
func Index(s,sep string) int--返回s中sep首次出现的位置----LastIndex---最后一次
func IndexAny(s, chars string) int--chars中任一unicode码值在s中首次出现的位置---LastIndexAny---最后一次
func IndexByte(s string, c byte) int--s中字符c首次出现的位置---LastIndexByte---最后一次
func IndexFunc(s string, f func(rune) bool) int--s中满足函数f(r)==true字符首次出现的位置---LastIndexFunc---最后一次

---------------------------------------------------------------分割字符串-----------------------------------------------------
func Fields(s string) []string--s以空白字符分割,返回切片      func FieldsFunc(s string, f func(rune) bool) []string--s以满足f(r)==true的字符分割,返回切片
func Split(s, sep string) []string--s以sep作为分隔符分割,分割后字符最后去掉sep-----func SplitN(s, sep string, n int) []string---n决定返回的切片数
func SplitAfter(s, sep string) []string--s以sep作为分隔符分割,分割后字符最后附上sep---func SplitAfterN(s, sep string, n int) []string---n决定返回的切片数

---------------------------------------------------------------大小写转换-----------------------------------------------------
func 函数(s string) string//Title---首字母大写   ToLower---转换成小写   ToTitle&&ToUpper---转换成大写
注意:(多数情况下 ToUpper 与 ToTitle 返回值相同,但在处理某些unicode编码字符则不同)
func 函数(_case unicode.SpecialCase, s string) string//ToLowerSpecial---ToTitleSpecial---ToUpperSpecial(s中所有字符按_case指定的映射转换成小-大-大写)

---------------------------------------------------------------修剪字符串-----------------------------------------------------
func 函数(s string, cutset string) string//Trim---TrimLeft---TrimRight----将s(首尾||左边||右边)包含在cutset中的任一字符去掉后返回;
func 函数(s string, f func(rune) bool) string//TrimFunc---TrimLeftFunc---TrimRightFunc----将s(首尾||左边||右边)满足函数f(r)==true的字符去掉返回;
func TrimSpace(s string) string//将s首位空白去掉返回;
func TrimPrefix(s, prefix string) string//s中前缀字符串prefix去掉返回     func TrimSuffix(s, suffix string) string//s中后缀字符串suffix去掉返回;

---------------------------------------------------------------比较字符串-----------------------------------------------------
func Compare(a, b string) int//按字典顺序比较a和b字符串大小;
func EqualFold(s, t string) bool//判断s和t两个UTF-8字符串是否相等,忽略大小写;
func Repeat(s string, count int) string//将字符串s重复count次返回;
func Replace(s, old,new string, n int) string//将s中的old字符替换为new并返回,n<0时替换所有old字符串;
func Join(a []string,sep string) string//将s中所有字符连接成一个字符串,使用sep作为分隔符;

在这里插入图片描述
3)time包的实例

package main
import (
	"fmt"
	"time"
)
func main()  {
	testTime()
}
func testTime(){
	t:=time.Now()
	fmt.Println("1.----",t)//获取当前本地时间
	fmt.Println("2.----",t.Local())//转换成本地时区
	fmt.Println("3.----",t.UTC())//转成零时区
	fmt.Println("------------------------------------------------------")

	t=time.Date(1997,time.January,1,12,12,12,0,time.Local)//根据指定数值返回时间---------纳秒-time.Local(当地时间)||time.UTC(世界统一时间)
	fmt.Printf("4.----本地时间:%s    国际时间:%s\n",t,t.UTC())
	fmt.Println("------------------------------------------------------")

	t,_=time.Parse("2006-01-02 15:04:05","2020-06-23 05:47:13")//将一个格式化的时间字符串解析成所代表的时间,layout表示参考时间格式,第二个返回值是出错信息
	fmt.Println("5.----",t)
	fmt.Println("------------------------------------------------------")

	fmt.Println("6.----",time.Now().Format("2006-01-02 15:04:02"))//根据指定格式返回时间点的格式化文本
	fmt.Println("7.----",time.Now().String())//时间格式化为字符串
	fmt.Println("------------------------------------------------------")

	fmt.Println("8.----",time.Now().Unix())//计算1970-1-1到指定时间的秒数
	fmt.Println("9.----",time.Now().UnixNano())//计算1970-1-1到指定时间的纳秒数
	fmt.Println("------------------------------------------------------")

	fmt.Println("10.----",t.Equal(time.Now()))//t.Equal(u)判断t和u两个时间是否相同,考虑时区影响
	fmt.Println("11.----",t.Before(time.Now()))//t.Before(u)判断t是否在u之前
	fmt.Println("12.----",t.After(time.Now()))//t.After(u)判断t是否在u之后
	fmt.Println("------------------------------------------------------")

	y,m,d:=time.Now().Date()//返回时间点对应的年月日
	fmt.Println("13.----",y,m,d)
	fmt.Println("14.----",time.Now().Year())
	fmt.Println("15.----",time.Now().Month())
	fmt.Println("16.----",time.Now().Day())
	fmt.Println("17.----",time.Now().Weekday())//返回星期几
	fmt.Println("------------------------------------------------------")

	hour,minute,second:=time.Now().Clock()//返回时间点对应的时分秒
	fmt.Println("18.----",hour,minute,second)
	fmt.Println("19.----",time.Now().Hour())
	fmt.Println("20.----",time.Now().Minute())
	fmt.Println("21.----",time.Now().Second())
	fmt.Println("22.----",time.Now().Nanosecond())//返回那一秒内的纳秒偏移量
	fmt.Println("------------------------------------------------------")

	fmt.Println("23.----",time.Now().Sub(time.Now()))//t.Sub(u)返回一个时间段t-u
	fmt.Println("24.----",time.Now().Sub(time.Now()).Hours())//将时间段表示为float64类型的小时数
	fmt.Println("25.----",time.Now().Sub(time.Now()).Minutes())//float64类型的分钟数
	fmt.Println("26.----",time.Now().Sub(time.Now()).Seconds())//float64类型的秒数
	fmt.Println("27.----",time.Now().Sub(time.Now()).Nanoseconds())//int64类型的纳秒数
	fmt.Println("28.----","时间间距:",t.Sub(time.Now()).String())//返回时间段用字符串表示
	fmt.Println("------------------------------------------------------")

	w,_:=time.ParseDuration("1h30m")//解析一个时间段字符串,包含可选的正负号、十进制数、可选的小数和单位后缀,合法单位-ns、us、ms、s、m、h
	fmt.Println("29.----",w)
	fmt.Println("30.----","结束时间:",time.Now().Add(w))//t.Add(w)返回时间点t+w
	fmt.Println("31.----","一年一个月零一天后的日期:",time.Now().AddDate(1,1,1))//返回增加的年、月、日
	fmt.Println("------------------------------------------------------")

}

4)math包的实例

package main
import (
	"fmt"
	"math"
)
func main()  {
	//下面除了第一个是bool外,其余全是float64
	fmt.Println(math.IsNaN(3.1415926))//判断f是否Not A Number
	fmt.Println(math.Ceil(3.00001))//返回不小于x的最小整数(向上取整)
	fmt.Println(math.Floor(3.00001))//返回不大于x的最小整数(向下取整)
	fmt.Println(math.Trunc(3.0001))//返回整数部分
	fmt.Println(math.Abs(-3.00001))//返回绝对值
	fmt.Println("--------------------------")

	fmt.Println(math.Max(2,3))//返回二者中的最大值
	fmt.Println(math.Min(2,3))//返回二者中的最小值
	fmt.Println(math.Dim(13,4))//返回x-y和0二者中的较大值
	fmt.Println("--------------------------")

	fmt.Println(math.Mod(11,3))//取余操作  x%y
	fmt.Println(math.Sqrt(9))//返回二次方根
	fmt.Println(math.Cbrt(8))//返回三次方根
	fmt.Println(math.Hypot(3,4))//求直角三角形的斜边  sqrt(p^2+q^2)
	fmt.Println(math.Pow(2,3))//返回x^y
	fmt.Println("--------------------------")

	//正弦sin 余弦cos 正切tan
	//对数log  log2  log10

}

5)math/rand—伪随机数生成器—整型||浮点型----need种子;
seed()函数生成不确定的种子—这样随机数生成器每次生成不同的序列;默认为seed(1);

package main
import (
	"fmt"
	"math/rand"
	"time"
)
func main()  {

	x1:=rand.Int()//返回一个非负的伪随机数
	fmt.Println(x1)
	x2:=rand.Intn(1000)//返回在[0,n]范围内的伪随机数
	fmt.Println(x2)
	x3:=rand.Float64()//返回[0.0,1.0]范围内的float64值
	fmt.Println(x3)
	//上面这三种方式生成的随机数是固定的---每次运行产生的数一样

	//动态随机数种子生成随机资源,产生随机对象获取随机数
	s1:=rand.NewSource(time.Now().UnixNano())//NewSource是使用给定的种子创建一个伪随机资源
	r1:=rand.New(s1)//使用s1产生的随机数来生成其他各种分布的随机数值
	x4:=r1.Intn(1000)
	fmt.Println(x4)

	//简写方式---动态变化随机数种子来获取随机数
	rand.Seed(time.Now().UnixNano())//使用给定的seed来初始化生成器到一个确定的状态
	x5:=rand.Intn(20)
	fmt.Println(x5)
	//生成[m,n]范围内的整型随机数
	rand.Seed(time.Now().UnixNano())
	x6:=rand.Intn(10-1+1)+1//rand.Intn(n-m+1)+m   eg:[1,10]
	fmt.Println(x6)
}

6)从键盘上输入数据—fmt.Scanln(&变量1, &变量2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LH-Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值