golang学习笔记-2

package main

import (

    "fmt"

    "math"

    "strings"

    "unicode"

)

const(

    bbb=iota

    cccc

)

func main() {

    //无法直接定义二进制

    var a int = 10

    fmt.Printf("%d %o %x %v\n", a, a, a, a)

    //文件权限 0642

    var b int = 077

    fmt.Printf("%b %d\n", b, b)

    c := 0xff

    fmt.Printf("%x \n", c)

    fmt.Printf("%X %d\n", c, c)

    fmt.Printf("%T\n", c)

    i4, i5 := int8(9), int16(14)

    fmt.Printf("%T,%T\n", i4, i5)

    fmt.Println(math.MaxFloat32, math.MaxFloat64)

    f1 := 1.2345         //默认Go语言中的小数都是float64类型

    f2 := float32(2.345) //显式声明float32类型

    fmt.Printf("%T ,%T\n", f1, f2)

    //f1 = f2 //float32 和float64 类型的值不能直接赋值给float64

    var c1 complex64

    c1 = 1 + 2i

    var c2 complex128

    c2 = 2 + 3i

    fmt.Println(c1, c2)

    //布尔类型变量的默认值是false

    //go语言中不允许将类型强制转换为布尔型

    b1 := true

    var b2 bool

    fmt.Printf("%T, %T,value :%v\n", b1, b2, b2)

    var n = 100

    fmt.Printf("%T,%d,%b,%o,%x,%s\n", n, n, n, n, n, string(n))

    var s = "hello 沙河"

    fmt.Printf("字符串: %#v\n", s)

    //字符串,只能用双引号,单引号是字符

    s1 := "hello"

    s2 := "你好"

    //字节,1字节=8bit(8个二进制位)

    fmt.Printf("%s ,%s \n", s1, s2)

    //一个字符 'A' = 1个字节

    //1个utf编码的汉字  '沙' = 一般占三个字节

    // \ 本来具有特殊含义的,单纯的  \

    path := "\"C:\\Users\\Administrator\\Desktop\\TI2.0\\3.4\""

    fmt.Println(path)

    s3 := "I'm Ok"

    fmt.Println(s3)

    s4 := `

        世情薄

            人情恶

        `

    fmt.Println(s4)

    //字符串的常用操作

    //字符串常用操作

    fmt.Println(len(s4))

    name := "理想"

    world := "dsb"

    fmt.Println(name + world)

    ss1 := fmt.Sprintf("%s,%s", name, world)

    fmt.Println(ss1)

    ret := strings.Split(path, "\\")

    fmt.Println(ret)

    fmt.Println(strings.Contains(ss1, "理想"))

    fmt.Println(strings.HasPrefix("hello world", "he"))

    fmt.Println(strings.HasSuffix("hello world", "ld"))

    fmt.Println(strings.Index("helloworld", "ow"))

    fmt.Println(strings.LastIndex("helloworld", "llo"))

    fmt.Println(strings.Join(ret, "+"))

    pp := "Hello 沙河,번역하다."

    for _, c := range pp {

        fmt.Printf("%c\n", c)

    }

    //go语言为了处理非ASCII码类型的字符,定义了新的rune类型

    //go语言的字符有以下两种,1 uint8类型或byte型,代表ascii的一个字符,2 rune类型(实际上是个int32),代表一个utf-8字符

    //字符串底层是个byte数组,可以和[]byte类型相互转换,字符串是不能修改的,字符串是byte字节组成的,所以

    //字符串的长度是byte字节长度。rune类型表示utf8字符,一个rune字符由一个或多个byte组成

    ss2 := "白萝卜"

    ss3 := []rune(ss2) //字符串强制转换成切片

    ss3[0] = '红'

    fmt.Println(string(ss3))

    sss1, sss2 := '红', "红"

    sss3, sss4 := byte('H'), "H" // byte(uint8)

    fmt.Printf("sss1:%T,sss2:%T,sss3:%T,sss4:%T,%d\n", sss1, sss2, sss3, sss4, sss3)

    //类型转换,只有强制类型转换,没有隐式类型转换,

    n1 := 10

    var f float64

    f = float64(n1)

    fmt.Printf("%T\n", f)

    var aa, bb = 3.1, 4.1

    var cc int

    cc = int(math.Sqrt(float64(aa*aa + bb*bb)))

    fmt.Println(cc)

    var in int = 12

    var fl float32 = 1.12

    var bo bool = false

    var st string = "第三方"

    fmt.Printf("%T,%v,%T,%v,%T,%v,%T,%v\n", in, in, fl, fl, bo, bo, st, st)

    fmt.Printf("%x\n", "我")

    fmt.Println(CountHans("hw大师傅daf发顺丰#"))

    fmt.Println(bbb,cccc)

}

func CountHans(s string) (count int) {

    for _, c := range s {

        if unicode.Is(unicode.Han, c) {

            count++

        }

    }

    return

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值