zoukankan      html  css  js  c++  java
  • go 1.0.3 入门

    package main
    
    import "fmt"
    import "os"
    
    var (
    	a int
    	b int
    )
    
    func testArrayParmter(arr [2]int) {
    	//arr传进来是个副本,所以函数内改变arr,对外部不影响
    	println("")
    	for i := range arr {
    		arr[i] += 1
    		print(arr[i])
    		if !(i+1 == len(arr)) {
    			print(",")
    		}
    	}
    	println("")
    }
    func testSliceParmter(arr []int) {
    	println("")
    	for i := range arr {
    		arr[i] += 1
    		print(arr[i])
    		if !(i+1 == len(arr)) {
    			print("^,")
    		}
    	}
    	println("")
    }
    func main() {
    	for i := 0; i < 5; i++ {
    		for j := 0; j <= i; j++ {
    			print("A")
    		}
    		println("")
    	}
    	a = 0x77
    	b = 077
    	const c = "i am const var"
    	const (
    		d = iota
    		e
    		f = iota
    	)
    	s := "hello" + " world"
    	ch := []byte(s) //将s转成字节数组
    	ch[0] = 'c'
    	s2 := string(`
    		ssfswerq
    	`)
    
    	if 1 < 2 {
    		if 1 > 0 && !false {
    			fmt.Printf("0<1<2\n")
    		} else {
    			fmt.Printf("not 0<1<2\n")
    		}
    	}
    	var cc complex128 = 5 + 5i
    
    	fmt.Printf("d=%d e=%d f=%d s2=%s cc=%v\n", d, e, f, s2, cc)
    	fmt.Printf("s=%s a=%d b=%d c=%s\n", s, a, b, c)
    	file, err := os.OpenFile("c:\\2.py", os.O_RDONLY, 0)
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	by := []byte(s)
    	file.Read(by)
    	fmt.Println(string(by)) //读取一行
    	dd, err := file.Stat()
    	if err != nil {
    		fmt.Println(err)
    		return
    	}
    	fmt.Println(dd)
    	file.Close()
    
    	//3种for的使用
    	for i := 1; i < 2; i += 1 {
    		fmt.Println(i)
    	}
    	i := 2
    	flag := true
    Here: //goto的使用
    	for i >= 0 {
    		fmt.Println(i)
    		i -= 1
    	}
    	for {
    		println("while True{}")
    		break
    	}
    
    	if flag {
    		flag = false
    		goto Here
    	}
    	j := 0
    J:
    	for i = 0; i < 100; i++ {
    		for j = 0; j < 100; j++ {
    			if i > 5 {
    				break J //跳出J标签所在的循环层
    			}
    		}
    	}
    	println(i, j)
    	println("====range的使用====")
    	list := []string{"a", "b", "c"}
    	for k, v := range list {
    		println(k, v)
    	}
    	for pos, cha := range "abc" {
    		fmt.Printf("#pos=%d cha='%c'\n", pos, cha) //为何这个会跑到while True{}前面输出
    	}
    	println("switch的使用")
    	ccc := 'A'
    	switch { //如果switch没有表达式,它会匹配true
    	//转化为一个个匹配,知道为true
    	case '0' <= ccc && ccc <= '9':
    		println('0')
    	case 'a'-32 <= ccc && ccc <= 'f'-32:
    		println('a')
    	case 'A' <= ccc && ccc <= 'F': //不会执行
    		println('A')
    	}
    	switch j {
    	case 1:
    		println("case 1")
    	case 2:
    		println("case 2")
    	default:
    		println("case default")
    	}
    	ch = []byte("hhhhhh")
    	ch2 := []byte("hhhhhhh")
    	println(len(ch), len(ch2))
    	for pos := range ch { //比较字符串大小
    		switch {
    		case ch[pos] > ch2[pos]:
    			println("big")
    		case ch[pos] < ch2[pos]:
    			println("small")
    		}
    	}
    	println("数组的使用")
    	arr := [2]int{1, 2} //这两个数组都初始化为1,2
    	var arr2 [2]int
    	arr2 = arr //数组同样是值类型的:将一个数组赋值给另一个数组,会复制所有的元素
    	for i := range arr2 {
    		print(arr2[i])
    	}
    	testArrayParmter(arr)
    	for i := range arr2 {
    		print(arr[i])
    	}
    	println("")
    	arr3 := [...]int{1, 2, 3, 4, 5, 6, 7, 8}
    	println(len(arr3))
    	println("数组的创建")
    	a3 := [3][2]int{[2]int{1, 2}, [...]int{1, 2}, {3, 4}}
    	println(len(a3))
    	println("slice的使用---slice是指向数组头部的指针,且是引用类型,要用make创建")
    	sl := make([]int, 10) //创建了一个保存有10个元素的slice
    	sl[1] = 2
    	println(sl[1])
    	sl2 := arr3[2:4]
    	println(sl2[0], sl2[1], len(sl2), arr3[:len(arr3)])
    	println("使用内置函数append和copy")
    	sa := []int{0, 0}
    	sb := append(sa, 2, 2)
    	sc := append(sb, sa...)        //{0,0,2,2,0,0}
    	for i := 0; i < len(sc); i++ { //会跑到goto那去
    		fmt.Printf("=%d=", sc[i])
    	}
    	println("")
    	var a4 = [8]int{0, 1, 2, 3, 4, 5, 6, 7}
    	var ss = make([]int, 6)
    	//copy最多复制的元素是两个参数数组的最小长度
    	n1 := copy(ss, a4[0:]) //因为s的长度为6,故此时s=={0,1,2,3,4,5}
    	n2 := copy(ss, ss[2:]) //由于复制重叠了,故此时s=={2,3,4,5,4,5}
    	println(n1, n2)
    	testSliceParmter(ss) //返回后ss=={3,4,5,6,5,6}
    	println("map的使用")
    	monthdays := map[string]int{
    		"Jan": 31, "Feb": 28, "Mar": 31,
    		"Apr": 30, "May": 31, "Jun": 30,
    		"Jul": 31, "Aug": 31, "Sep": 30,
    		"Oct": 31, "Nov": 30, "Dec": 31, //注意最后一个逗号不能少
    	}
    	println(monthdays["Nov"])
    	year := 0
    	for _, days := range monthdays {
    		year += days
    	}
    	monthdays["ckl_day"] = 31 //向map添加新项
    
    	val, ok := monthdays["ckl_day"] //判断monthdays["ckl_day"]是否存在,保存在ok中
    	//删除monthdays["ckl_day"]项
    	delete(monthdays, "ckl_day")
    	year2 := 0
    	for _, days := range monthdays {
    		year2 += days
    	}
    	val1, ok1 := monthdays["ckl_day"]
    	println(year, monthdays["ckl_day"], val, ok, year2, val1, ok1)
    
    }
    



  • 相关阅读:
    oracle学习笔记(十五) PL/SQL语法结构以及使用
    Jquery1
    DOM2
    DOM
    JS的使用
    登录
    数据库操作是sql的操作1
    数据库2_sqlHelper
    数据库1数据库常用指令
    C# 基础
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3086010.html
Copyright © 2011-2022 走看看