@@ -634,61 +634,61 @@ func main() {
634
634
}
635
635
```
636
636
637
- 33 Arrays
638
- ---------
637
+ 33 Arrays & Slices
638
+ ------------------
639
639
640
- Java:
640
+ Java Arrays :
641
641
642
642
``` java
643
643
int size = 10 ;
644
644
int [] arr = new int [size];
645
645
```
646
646
647
- Go:
647
+ Go Slices :
648
648
649
649
``` go
650
650
size := 10
651
- arr := make ([]int , size)
651
+ slice := make ([]int , size)
652
652
```
653
653
654
- Iterate over an array :
654
+ Iterate over a slice :
655
655
656
656
``` go
657
- for i , val := range arr {
658
- fmt.Printf (" arr [%v ] = %v \n " , i, val)
657
+ for i , val := range slice {
658
+ fmt.Printf (" slice [%v ] = %v \n " , i, val)
659
659
}
660
660
```
661
661
662
- 34 Array Example
663
- ----------------
662
+ 34 Arrays & Slices Example
663
+ --------------------------
664
664
665
665
``` go
666
666
package main
667
667
668
668
import " fmt"
669
669
670
- func createArray (size int ) []int {
671
- a := make ([]int , size)
670
+ func createSlice (size int ) []int {
671
+ slice := make ([]int , size)
672
672
for i := 0 ; i < size; i++ {
673
- a [i] = i + 1
673
+ slice [i] = i + 1
674
674
}
675
- return a
675
+ return slice
676
676
}
677
677
678
- func applyFunction (arr []int , f func (int ) int ) {
679
- for i , n := range arr {
680
- arr [i] = f (n)
678
+ func applyFunction (slice []int , f func (int ) int ) {
679
+ for i , n := range slice {
680
+ slice [i] = f (n)
681
681
}
682
682
}
683
683
684
684
func main () {
685
685
f := func (n int ) int {
686
686
return 2 * n
687
687
}
688
- arr := createArray (10 )
689
- fmt.Printf (" %v \n " , arr )
690
- applyFunction (arr , f)
691
- fmt.Printf (" %v \n " , arr )
688
+ slice := createSlice (10 )
689
+ fmt.Printf (" %v \n " , slice )
690
+ applyFunction (slice , f)
691
+ fmt.Printf (" %v \n " , slice )
692
692
}
693
693
```
694
694
@@ -699,17 +699,17 @@ Result:
699
699
[2 4 6 8 10 12 14 16 18 20]
700
700
```
701
701
702
- 35 Slices
703
- ---------
702
+ 35 Index Ranges
703
+ ---------------
704
704
705
705
Example 1:
706
706
707
707
``` go
708
- arr := createArray (10 )
709
- fmt.Printf (" %v \n " , arr )
710
- slice := arr [3 :7 ]
708
+ slice := createSlice (10 )
709
+ fmt.Printf (" %v \n " , slice )
710
+ slice := slice [3 :7 ]
711
711
applyFunction (slice, f)
712
- fmt.Printf (" %v \n " , arr )
712
+ fmt.Printf (" %v \n " , slice )
713
713
```
714
714
715
715
Result:
@@ -722,14 +722,14 @@ Result:
722
722
Example 2:
723
723
724
724
``` go
725
- arr := createArray (10 )
726
- fmt.Printf (" %v \n " , arr )
727
- firstHalf := arr [:len (arr )/2 ]
725
+ slice := createSlice (10 )
726
+ fmt.Printf (" %v \n " , slice )
727
+ firstHalf := slice [:len (slice )/2 ]
728
728
applyFunction (firstHalf, f)
729
- fmt.Printf (" %v \n " , arr )
730
- secondHalf := arr [len (arr )/2 :]
729
+ fmt.Printf (" %v \n " , slice )
730
+ secondHalf := slice [len (slice )/2 :]
731
731
applyFunction (secondHalf, f)
732
- fmt.Printf (" %v \n " , arr )
732
+ fmt.Printf (" %v \n " , slice )
733
733
```
734
734
735
735
Result:
@@ -753,9 +753,9 @@ func main() {
753
753
mult := func (a, b int ) int {
754
754
return a * b
755
755
}
756
- arr := createArray (10 )
757
- fmt.Printf (" add(1..10)=%v \n " , combine (arr , add))
758
- fmt.Printf (" mult(1..10)=%v \n " , combine (arr , mult))
756
+ slice := createSlice (10 )
757
+ fmt.Printf (" add(1..10)=%v \n " , combine (slice , add))
758
+ fmt.Printf (" mult(1..10)=%v \n " , combine (slice , mult))
759
759
}
760
760
```
761
761
@@ -998,10 +998,10 @@ func counter(w http.ResponseWriter, r *http.Request) {
998
998
999
999
Topics covered in this workshop:
1000
1000
1001
- * Control flow: if/else, for
1001
+ * control flow: if/else, for
1002
1002
* functions, error handling, deferred methods
1003
1003
* pointers, structs, methods, interfaces
1004
- * arrays/ slices
1004
+ * arrays & slices
1005
1005
* multithreading
1006
1006
1007
1007
Solution to Exercise 14
@@ -1174,33 +1174,33 @@ package main
1174
1174
import " fmt"
1175
1175
1176
1176
// for loop
1177
- func combine1 (arr []int , f func (int , int ) int ) int {
1178
- result := arr [0 ]
1179
- for i := 1 ; i < len (arr ); i++ {
1180
- result = f (result, arr [i])
1177
+ func combine1 (slice []int , f func (int , int ) int ) int {
1178
+ result := slice [0 ]
1179
+ for i := 1 ; i < len (slice ); i++ {
1180
+ result = f (result, slice [i])
1181
1181
}
1182
1182
return result
1183
1183
}
1184
1184
1185
1185
// recursive
1186
- func combine2 (arr []int , f func (int , int ) int ) int {
1187
- if len (arr ) == 1 {
1188
- return arr [0 ]
1186
+ func combine2 (slice []int , f func (int , int ) int ) int {
1187
+ if len (slice ) == 1 {
1188
+ return slice [0 ]
1189
1189
}
1190
- if len (arr ) == 2 {
1191
- return f (arr [0 ], arr [1 ])
1190
+ if len (slice ) == 2 {
1191
+ return f (slice [0 ], slice [1 ])
1192
1192
}
1193
- left := combine2 (arr [:len (arr )/2 ], f)
1194
- right := combine2 (arr [len (arr )/2 :], f)
1193
+ left := combine2 (slice [:len (slice )/2 ], f)
1194
+ right := combine2 (slice [len (slice )/2 :], f)
1195
1195
return f (left, right)
1196
1196
}
1197
1197
1198
- func createArray (size int ) []int {
1199
- a := make ([]int , size)
1198
+ func createSlice (size int ) []int {
1199
+ slice := make ([]int , size)
1200
1200
for i := 0 ; i<size; i++ {
1201
- a [i] = i+1
1201
+ slice [i] = i+1
1202
1202
}
1203
- return a
1203
+ return slice
1204
1204
}
1205
1205
1206
1206
func main () {
@@ -1210,14 +1210,14 @@ func main() {
1210
1210
mult := func (a, b int ) int {
1211
1211
return a * b
1212
1212
}
1213
- arr := createArray (10 )
1213
+ slice := createSlice (10 )
1214
1214
fmt.Printf (" for loop:\n " )
1215
- fmt.Printf (" add(1..10)=%v \n " , combine1 (arr , add))
1216
- fmt.Printf (" mult(1..10)=%v \n " , combine1 (arr , mult))
1215
+ fmt.Printf (" add(1..10)=%v \n " , combine1 (slice , add))
1216
+ fmt.Printf (" mult(1..10)=%v \n " , combine1 (slice , mult))
1217
1217
1218
1218
fmt.Printf (" \n recursive:\n " )
1219
- fmt.Printf (" add(1..10)=%v \n " , combine2 (arr , add))
1220
- fmt.Printf (" mult(1..10)=%v \n " , combine2 (arr , mult))
1219
+ fmt.Printf (" add(1..10)=%v \n " , combine2 (slice , add))
1220
+ fmt.Printf (" mult(1..10)=%v \n " , combine2 (slice , mult))
1221
1221
}
1222
1222
```
1223
1223
0 commit comments