zoukankan      html  css  js  c++  java
  • go2

    go2

    package main
    
    import "fmt"
    
    //func main(){
    //	// 给int 定义个别名
    //	type myint int
    //	var i myint = 100
    //	fmt.Println(i)
    //	// 在main包里的类型 作用域
    //	fmt.Println(reflect.TypeOf(i)) // main.myint  源码中用的多
    //}
    
    //类型转换
    //func main(){
    //	// go 不支持隐式转换,必须显式声明(先用int)
    //	var ch byte = 'a'
    //	var i int = int(ch)
    //	fmt.Println(i)
    //}
    
    
    
    
    //func main(){
    //	const filename = "aaa.txt"
    //	//读文件
    //	contents, err := ioutil.ReadFile(filename)
    //	// None  nil
    //	if err != nil{
    //		fmt.Println(err)
    //	}else{
    //		fmt.Printf("%s
    ",contents)
    //	}
    //	// if 也可以这样写
    //	if contents, err := ioutil.ReadFile(filename);err!=nil{
    //		fmt.Println(err)
    //	}else{
    //		fmt.Printf("%s
    ",contents)
    //	}
    //}
    
    //// 传入成绩,得到成绩评分
    //func grade(score int)string{
    //	//定义空串
    //	g := ""
    //	switch{
    //	case score<0 || score>100:
    //		g = "错误"
    //		fallthrough // 不停了,下一个,自动加了break,停止
    //	case score<60:
    //		g = "F"
    //	case score<80:
    //		g = "C"
    //	case score<100:
    //		g = "A"
    //	}
    //	return g
    //}
    //
    //func main(){
    //	fmt.Println(
    //		grade(0),
    //		grade(90),
    //		grade(101),
    //	)
    //}
    
    // go 的死循环 挺多的, 做后端服务,一直等待客户
    //func for1(){    // 一直循环 死循环
    //	for{
    //		fmt.Println(123)
    //		// 睡2 秒
    //		time.Sleep(2*time.Second)
    //	}
    //}
    //
    //// 2.- 正常循环
    //func for2(){
    //	for i:=1 ;i<10;i++{
    //		fmt.Println(123)
    //		// 睡2 秒
    //		time.Sleep(1*time.Second)
    //	}
    //}
    
    
    // range 的
    //func main(){
    //   s:="小小abc"
    //   for i:= range s{
    //   		fmt.Printf("下标=%d,值=%c
    ",i,s[i])
    //   }
    //
    //
    //	for i,c:= range s{
    //		fmt.Printf("下标=%d,值=%c
    ",i,c)
    //	}
    //}
    
    //func main(){
    //	for i:=0 ; i<10 ;i++{
    //		fmt.Println(i)
    //		goto LABEL
    //	}
    //	fmt.Println("结束")
    //	LABEL:
    //		fmt.Println("label")
    //}
    
    //若函数名大写,则包外可以调用
    //func Test(args ...int){
    func Test(args ...int){
    	//fmt.Println(111)
    	for _,n := range args{
    		fmt.Println(n)
    	}
    }
    func Test1(a int , args ...int){ //必须写在前面
    	//fmt.Println(111)
    	for _,n := range args{
    		fmt.Println(n)
    	}
    }
    func Test2(a int , args ...int)(b int){ //必须写在前面  ()返回值
    	//fmt.Println(111)
    	for _,n := range args{
    		fmt.Println(n)
    	}
    	return b  //返回值
    }
    
    
    
    func Test3() int { //必须写在前面  ()返回值
        sum:=0
    	for i:=1 ; i<100 ; i++{
    		sum+=i
    	}
    	return sum
    }
    
    // 递归写法
    func Test4(i int ) int { //必须写在前面  ()返回值
    	sum:=0
    	if  i == 1 {
    		return 1
    	}
    	return sum + Test3()
    }
    
    //func main(){
    //	Test()
    //	Test(1)
    //	Test(1,2,3,4)
    //	fmt.Println(Test3())
    //}
    
    
    //func main(){
    //	defer tt(0)   //这个报错,不影响正常程序的使用
    //	fmt.Println(Test4(10))
    //  // 默认最后走
    //	defer fmt.Println(123)
    //	fmt.Println("第二次")
    //
    //	defer fmt.Println("defer语句1")
    //	defer fmt.Println("defer语句2")
    //	defer fmt.Println("defer语句3")
    //}
    //
    //func tt(x int){
    //	fmt.Println(10/x)
    //}
    //
    
    
    //指针
    //取地址符 &
    //func main(){
    //	var a int = 10
    //	fmt.Printf("a变量的地址是:%x
    ",&a) // a变量的地址是:c000054080
    //}
    
    //func main(){
    //	var a int = 10
    //	var ip *int
    //	ip = &a
    //	fmt.Printf("a的地址是,%x
    ",&a) //a的地址是,c000010098
    //	fmt.Printf("ip指针存储的地址是,%x
    ",ip) //ip指针存储的地址是,c000010098
    //	fmt.Printf("ip指针指向的值是,%d
    ",*ip) //ip指针存储的地址是,c000010098
    //}
    
    
    
    //func main(){
    //	var num int = 10
    //	fmt.Println(&num)  //地址 0xc000054080
    //	var ptr *int
    //	ptr = &num  // &变量地址给他
    //	//修改
    //	*ptr = 20   // *地址修改这个地址的值
    //	fmt.Println(num)   //20
    //	fmt.Println(ptr)  //地址 0xc000054080
    //
    //}
    
    
    // 取地址符 &
    //func main(){
    //	var ptr *int
    //	fmt.Println("ptr的值为",ptr)
    //	if ptr==nil{
    //		fmt.Println("ptr的值为nil")
    //	}else{
    //		fmt.Println("ptr的值为",ptr)
    //	}
    //}
    
    func swap(a,b *int){
    	*a,*b = *b,*a   //指针修改
    }
    
    //func main(){
    //	a,b := 1,2
    //	swap(&a,&b)  //传地址
    //	fmt.Println(a,b)
    //}
    
    
    //new make 数组 切片
    //func main(){
    //	p:=new([]int)
    //	fmt.Println(p)  //  &[]
    //
    //	// 会初始化
    //	// 初始化10个长度,容量为50
    //	m := make([]int,10,50)
    //	fmt.Println(m)  //  [0 0 0 0 0 0 0 0 0 0]
    //}
    
    
    //func main(){
    //    //声明数组
    //    var arr1 [5] int
    //    arr2 := [5]int{1,2,3,4,5}
    //    //可以省略大小
    //    arr3 := [...]int{1,2,3,4}
    //    fmt.Println(arr1,arr2,arr3)
    //
    //    var xx[3][2] int
    //    fmt.Println(xx)
    //
    //	//1数组遍历
    //    for i:=0 ; i<len(arr3);i++{
    //    	fmt.Println(arr3[i])
    //	}
    //    //fmt.Println('
    ')
    //    for i,v := range arr3{
    //    	fmt.Println(i,v)
    //	}
    //}
    
    
    // func printArr(arr [5]int){
    // 	arr[0] = 10
    // 	for i,v :=range arr{
    // 		fmt.Println(i,v)
    //	}
    // }
    //func main(){
    //	var arr1 [5]int
    //	arr2 := [3]int{1,2,3}
    //	arr3 := [...]int{2,4,6,8}
    //    	fmt.Println(arr1,arr2,arr3)
    //	fmt.Println()
    //	printArr(arr1)
    //	fmt.Println(arr1)  //值传递 [0 0 0 0 0]
    //}
    
    
    func printArr(arr *[5]int){
    	arr[0] = 10
    	for i,v :=range arr{
    		fmt.Println(i,v)
    	}
    }
    func main(){
    	var arr1 [5]int
    	arr2 := [3]int{1,2,3}
    	arr3 := [...]int{2,4,6,8}
       	fmt.Println(arr1,arr2,arr3)
    	fmt.Println()
    	printArr(&arr1)
    	fmt.Println(arr1)  // [10 0 0 0 0]
    }
    
    
  • 相关阅读:
    TCO 2013 2A
    matlab 中的fmincon参数设定问题
    一步步写自己SqlHelper类库(四):Connection对象
    珠海立方科技实习总结
    Web Services 应用开发学习笔记(三):XML模式定义
    C#笔记(一):类型,泛型,集合
    Web Services 应用开发学习笔记(二):XML文档类型定义
    一步步写自己SqlHelper类库(三):连接字符串
    一步步写自己SqlHelper类库(二):.NET Framework 数据提供程序
    (Joomla)多功能健康模块
  • 原文地址:https://www.cnblogs.com/Doner/p/11385348.html
Copyright © 2011-2022 走看看