设为首页 加入收藏

TOP

Go基础(2)(一)
2019-03-26 14:08:28 】 浏览:56
Tags:基础

demo1:

package main

import (
    "fmt"
    "strings"
)

func main() {
    url := pathToUrl("www.baidu.com", "https")
    isUrl(url)

}

func isUrl(url string) {
    http := strings.HasPrefix(url, "http://")
    https := strings.HasPrefix(url, "https://")
    if http || https {
        fmt.Printf("%s 是一个URL", url)
    } else {
        fmt.Printf("%s 不是一个URL", url)
    }
}

func pathToUrl(path string, protocol string) string {
    var result string
    if protocol == "http" || protocol == "https" {
        result += protocol
        result += "://"
        result += path
        return result
    } else {
        return ""
    }
}

分析:

1.字符串的基本使用

2.strings包还有其他的一些函数,会在下面介绍

 

demo2:

package main

import (
    "fmt"
    "strconv"
    "strings"
)

func main() {
    str := " hello world hahaha "

    result1 := strings.Replace(str, "world", "earth", 1)
    fmt.Println(result1) // hello earth hahaha

    result2 := strings.Count(str, "ha")
    fmt.Println(result2) //3

    result3 := strings.ToUpper(str)
    fmt.Println(result3) // HELLO WORLD HAHAHA

    result4 := strings.TrimSpace(str)
    fmt.Println(result4) //hello world hahaha

    result5 := strings.Fields(str)
    fmt.Println(result5) //[hello world hahaha]

    result6 := strings.Join(result5, "0")
    fmt.Println(result6) //hello0world0hahaha

    result7 := strconv.Itoa(666)
    fmt.Println(result7) //666

    result8, err := strconv.Atoi("666")
    if err != nil {
        fmt.Println("can not convert to int:", err)
    }
    fmt.Println(result8) //666
}

分析:

1.一些字符串的基本操作

2.其他的功能直接查文档即可,很简单

 

demo3:

package main

import (
    "fmt"
    "time"
)

func main() {
    start := time.Now().UnixNano()
    now := time.Now()
    theTime := now.Format("2006/01/02 15:05:05")
    fmt.Println(theTime) //2019/03/25 14:07:07
    end := time.Now().UnixNano()
    fmt.Printf("程序共耗时:%d微秒", (end-start)/1000)
}

分析:

1.格式化函数format,必须使用2006/01/02 15:05:05这个日期,Go规定的

2.这里统计程序运行时间的方法,在日后开发中会经常用到

 

demo4

package main

import "fmt"

func main() {
    var a int = 10
    fmt.Printf("%d\n", a) //10

    var p *int = &a
    fmt.Printf("%d->%d\n", p, *p) //824633794696->10

    var b int = 5
    //*p = b
    //fmt.Println(a) //5

    p = &b
    fmt.Println(a) //10

    modify(p)
    fmt.Printf("a:%d b:%d\n", a, b) //a:10 b:666

    modify(&a)
    fmt.Printf("a:%d b:%d\n", a, b) //a:666 b:666
}

func modify(p *int) {
    *p = 666
    return
}

分析:

1.指针的巩固练习

2.*p=b:p指向b,因为p是a的地址,所以a的值变成了b的值

3.p=&b:p是a的地址,指向a,这时候把b的地址赋值给p,但指向没有变。a,b的值都没有变,a和b的地址也没有变,*p的值变成5

4.第一次Modify:这时的p已经是b的地址了,所以如果修改了p的指向,那么其实就直接修改了b的值

5.第二次Modity:这里就是很正常地修改了a的值

 

demo5:

package main

import "fmt"

func main() {
    str := "hello world!"
    for index, value := range str {
        fmt.Printf("index[%d] value:%c\n", index, value)
    }
    /*输出前三行如下
    index[0] value:h
    index[1] value:e
    index[2] value:l
    */
}

分析:

1.除了基本地for循环,go有另一种for循环,很方便,值得学习

 

demo6:

package main

import "fmt"

type op_func func(int, int) int

func add(a, b int) int {
    ret
编程开发网
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go指南 - 笔记 下一篇windows从0开始学golang

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }