Golang 快速學習自我挑戰 Day10
第五章:Slices 和 Internal 什麼是 Slice header? 如果一個 Slice 沒有儲存任何 elements,那它裡面包含什麼?Slice 裡面包含記憶體位置用來指向 backing Array。 Slice header 裡面包含三個內容,Pointer(記憶體位置)、Length(長度) 和 Capacity(空間大小,儲存記憶體實際佔用的大小,你可以使用 cap
第五章:Slices 和 Internal 什麼是 Slice header? 如果一個 Slice 沒有儲存任何 elements,那它裡面包含什麼?Slice 裡面包含記憶體位置用來指向 backing Array。 Slice header 裡面包含三個內容,Pointer(記憶體位置)、Length(長度) 和 Capacity(空間大小,儲存記憶體實際佔用的大小,你可以使用 cap
第五章:Slices 和 Internal 章節介紹 Slice 是動態的 Array。 這個章節會學習到的內容。 Array 和 Slice 的差異。 使用 append() 來增加 Slice。 Slicing - Slice 表達式 [low:high]。 Internals。 Backing Array。 Slice Header。 Capacity of Slice - cap
第三章 如何使用 Multi-dimensional Array? 新增一個 Multi-dimensional Array,會是這樣的形式,最外層的 [2] 宣告裡面有 2 個 Array,而 [3]int 是裡面 Array 的長度和型別。 1234[2][3]int{ [3]int{5, 6, 1}, [3]int{9, 8, 4}
第三章 複合型別(Composite Type) 複合型別的類型 Arrays:有 index、固定長度。 Slices:有 index、動態長度。 Sting Internals:ByteSlices, ASCII & Unicode, Encoding & Decoding。 Maps:有 index,key-value pair。 Structs:一組不同型別的變數。
章節二 Go 和 Randomization 這邊會實作一個 Lucky number 的專案,使用者會輸入數字,然後系統會隨機產生一個數字,當使用者猜到跟系統隨機產生的數字相同,使用者勝利。 這邊會用到 rand 的套件包,Go 的隨機是使用假隨機(pseudo-random),在每次執行的時候,Go 會產生一連串的已定好的數列(deterministic sequence)。 func
章節一 在 Go 只有一種迴圈 在 Go 只有 for 迴圈,沒有 while 和 until 迴圈。 for 迴圈就是重複一段程式碼當條件是 true。 i := 1 是 init statement。i <= 5 是 condition statement,它是 bool expression,當它等於 false 的時候,迴圈結束。i++ 是 post statement。 12
章節一 Switch Statement switch statement 和 if statement 很像,但是有不同的語法。 city 是 condition expression,它非常重要因為它控制了 case 語法的 condition。如果 city 等於 case 裡面的內容(等同於 if city == “Paris”),就會執行 case 裡面的 block。 1234s
章節一 IF statement Go 裡面的 if statement 不需要括號,直接在 if 後面輸入你的條件就可以了。 1234567891011package mainimport "fmt"func main() { score, valid := 5, true if score > 3 && valid {
章節一 什麼是 Raw String Literal? 會分成三步驟學習:Raw String Literal, 字串的連結(Concatenation), 字串長度(String Length)。 String Literal,"hi there, 星",使用雙引號只能有一行,而這邊會進行轉譯(interpreted),如果有新的一行,Go 會轉換成一個新行字符。 Ra
章節一 安裝 Go 環境 安裝Go環境教學 變數介紹 你必須要先定義變數才能夠使用它,所以你不能直接給一個未定義的變數一個值,因為它不存在。 在 Dynamic Programming 裡面,你可以在還沒定義變數之前,直接給它值,這樣很好用,但是對後面的程式碼維護並不容易。 var speed int var 就是 variable 的簡稱,宣告變數一定要輸入這個 Keyword。 s
Arrays、Java 內建 List、Autoboxing 和 Unboxing LinkedList LinkedList 是另外一種型態的 List。 Java 會為整數分配 4 位元的記憶體,基本上記憶體會連續排列,圖中可以看到 position 0 的位址是 100,position 1 的位址是 104,如果我想要找到 position 3 的位址,就 3*4=12,得知
Arrays、Java 內建 List、Autoboxing 和 Unboxing List 和 ArrayList Array 如果需要變更長度,會需要變更 Array 的長度,但是重複做變更長度會很冗贅,所以這邊要講 List 中的 ArrayList,ArrayList 就是可以變更長度的 Array,ArrayList 還可以保存 Objects。 這邊用購物清單的功能做一個例子,先
Arrays、Java 內建 List、Autoboxing 和 Unboxing Arrays 設置 Array,可以用以下兩種方式來進行設置 12int[] myIntArray = new int[25];int[] myIntArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 賦予 Array 值 123myIntArray[0
物件導向程式設計 (OOP) - Composition, Encapsulation 和 Polymorphism Encapsulation Encapsulation 是一個允許你對正在創建的 Objects 裡面的特定 Components 做限制存取的機制。 它可以用來屏蔽其它 Class 的存取,保持內部工作正常,且可以讓你修改內容的時候避免損壞。 用一個範例來了解 Encaps
物件導向程式設計 (OOP) - Classes, Constructors 和 Inheritance 繼承(Inheritance) 挑戰 Class 會自動從 Object Class 繼承,所以下面的程式碼是本來應該有的樣子,為了簡便,所以省略了 extends Object 123456public class Main extends Object { publ
物件導向程式設計 (OOP) - Classes, Constructors 和 Inheritance 挑戰 地毯花費計算器 題目 The Carpet Company has asked you to write an application that calculates the price of carpeting for rectangular rooms. To calcula