//把str字串按空格進行分割,並返回乙個slice
str := "string one two stree"
sl := strings.fields(str)
//切分完成後進行for迴圈讀取其中的資料
/** for 迴圈示例
range為關鍵字 得到的是下標和值
因為下面**不需要下標 所以用`_`進行了接收
如果需要使用下標 可以將 `_` 替換成 i
*/ for _, val := range sl
/**strings.trimspace(s) 來剔除字串開頭和結尾的空白符號
join 用於將元素型別為 string 的 slice 使用分割符號來拼接組成乙個字串:
strings.join(sl string, sep string) string
strconv 是型別轉換類 任何型別都可以轉換成為 string 但是string轉換成
其他引數不是一定可以的
返回的格式 :val, err = strconv.atoi(s)
*/ int_str := strconv.intsize
fmt.println(int_str)
unicode 包含了一些針對測試字元的非常有用的函式(其中 ch 代表字元):判斷是否為字母:unicode.isletter(ch)
判斷是否為數字:unicode.isdigit(ch)
判斷是否為空白符號:unicode.isspace(ch)
time.now().format(『2018-12-07』)把當前時間轉換為format裡面傳入的格式
如果需要在應用程式在經過一定時間或週期執行某項任務(事件處理的特例),
則可以使用 time.after 或者 time.ticker:
另外,time.sleep(duration d) 可以實現對某個程序(實質上是 goroutine)時長
為 d 的暫停。
t := time.now()
fmt.println(t) // e.g. wed dec 21 09:52:14 +0100 rst 2011
fmt.printf("%02d.%02d.%4d\n", t.day(), t.month(), t.year())
// 21.12.2011
t = time.now().utc()
fmt.println(t) // wed dec 21 08:52:14 +0000 utc 2011
fmt.println(time.now()) // wed dec 21 09:52:14 +0100 rst 2011
// calculating times:
week := 60 * 60 * 24 * 7 * 1e9 // must be in nanosec
week_from_now := t.add(time.duration(week))
fmt.println(week_from_now) // wed dec 28 08:52:14 +0000 utc 2011
// formatting times:
fmt.println(t.format(time.rfc822)) // 21 dec 11 0852 utc
fmt.println(t.format(time.ansic)) // wed dec 21 08:56:34 2011
fmt.println(t.format("02 jan 2006 15:04")) // 21 dec 2011 08:52
s := t.format("20060102")
fmt.println(t, "=>", s)
可以控制資料結構的指標 但是不能進行指標運算go語言訪問位址符是
&
放到乙個變數前使用就會返回相應變數的記憶體位址位址可以儲存在乙個叫做指標的特殊資料型別中
(指標的格式化識別符號為 %p)
乙個指標變數可以指向任何乙個值的記憶體位址 它指向那個值的記憶體位址
使用乙個指標引用乙個值被稱為間接引用
乙個指標變數通常縮寫為 ptr。
對於任何乙個變數 var, 如下表示式都是正確的:var == *(&var)。
改變指標中的值時 原物件的值也會改變 因為他們兩個指向同乙個位址
注意不能得到乙個文字或常量的位址
對乙個空指標的反向引用是不合法的,並且會使程式崩潰
var i1 = 5
fmt.printf("an integer: %d, it's location in memory: %p\n", i1, &i1)
var intp *int //宣告指標變數 //
intp = &i1
fmt.println( *intp) //獲取指標中的類容
//改變指標中的值時 原物件的值也會改變 因為他們兩個指向同乙個位址
sts := "good bye"
var p *string = &sts
*p = "ciao"
fmt.printf("here is the pointer p: %p\n", p) // prints address
fmt.printf("here is the string *p: %s\n", *p) // prints string
fmt.printf("here is the string s: %s\n", sts) // prints same string
關鍵字 if 和 else 之後的左大括號 必須和 else-if 關鍵字在同一行。這兩條規則都是被編譯器強制規定的。
非法**
if x
else
當 if 結構內有 break、continue、goto 或者 return 語句時 go **的常見寫法是省略 else 部分
//判斷語句 這裡不需要使用 if bool1 == true 來判斷,因為 bool1 本身已經是乙個布林型別的值
bool1 := true
if bool1 else
i,err := teststrtoint("aa")
if err != nil else
switch結構變數 var1 可以是任何型別,而 val1 和 val2 則可以是同型別的任意值。
型別不被侷限於常量或整數,但必須是相同的型別;或者最終結果為相同型別的表示式。前花括號 switch 語句的第二種形式是不提供任何被判斷的值(實際上預設為判斷是否為 true),
然後在每個 case 分支中進行測試不同的條件。當任一分支的測試結果為 true 時,
該分支的**會被執行。這看起來非常像鏈式的 if-else 語句,但是在測試條件非常多的情況下,提供了可讀性更好的書寫方式。
switch
R語言學習記錄 2
學習如何構造r函式 難度提公升 構造統計分布 避免命名衝突 例如,定義函式f01為引數為a的指數分布的密度函式,定義f02為該指數分布的分布函式,取a 1 5,進行計算,可以看出,三種計算結果基本一致.f01 function x,a f01 5,1 5 f02 function x,a c 3 c...
C語言學習記錄(2)
以上一次學習記錄 中的hello world!為例 include 標頭檔案也叫編譯預處理指令 intmain void 定義主函式 函式結束首先,在每行後的說明文字是注釋內容,後的文字不參與程式的執行,並且,是單行注釋,也就是說其後面的內容是不參與執行的,可以佔據一整行,但是不能跨行。類似作用的符...
GO語言學習
sudo apt get install golang但是用ubuntu的庫安裝有幾個不好的地方 因此建議不要使用ubuntu的庫安裝golang環境 golang社群的安裝指導 wget tar c usr local zxf go1.6.2.linux amd64.tar.gz設定環境變數,修改...