+ All Categories
Home > Documents > 2021 6 Ä Æ Ó íb aï [9 Web ä ú ½ ö ì ½

2021 6 Ä Æ Ó íb aï [9 Web ä ú ½ ö ì ½

Date post: 24-Dec-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
34
CSC.T364 τφϓϭ戔懯ᄍ嬹 - WebϤϺν϶ϬЀν 2021. 10. 05 2021ଙଶ τφϓϭ戔懯ᄍ嬹 WebϤϺν϶ϬЀν 伛㯪娒ғGo承΄च;DockerΨ͵䋚ᤈ
Transcript
lesson_022021 τφ Webνν
/ 34CSC.T364 τφ - Webνν
ΔΩΥ
ΨΘΟΥChatΩΘΟΘΔΩ
ChatΖΠΡΕΨΔ
ΘΨΡΘΠΔ
WebςαΞΠγϖΔ
αΔΩ…
υδμ
υδμtutorial.go
ΨΠαΨΠΡ
Ρνhttps://github.com/cs-sysdes/tutorial.go
1package main - GoνξυΡ - ξυμ
- Java φμΨϖ - /utils/foo/Bar.java → package utils.foo;
- Go Ε - /utils/foo/bar.go → package foo
- ΘΡΨΡΡ - εαΡ main ΨΡ main ξυ
package main
import “fmt”
1 2 3 4 5 6 7
tutorial.go/main.go
2import “fmt”
- ξυΨΡΗ - C #include ΞΨΠΖ - α fmt ξυΨΡΡ
- import ΡξυΨΡΡ - f fmt εαφΡ
- ξυΨ import ΔΗΡΡ
package main
import “fmt”
1 2 3 4 5 6 7
tutorial.go/main.go
1. GoνDockerΨ 7
5-7main - GoΡεα
- C main - main :: void -> void Go void Ψ
- τμφ - GoΡΡΡ
- αΟαθ () - Ηκξφ or φθξφΡ
- main ΔΠ
1 2 3 4 5 6 7
tutorial.go/main.go
6fmt.Println(“Hello world!”)
- import - C puts
- Ψ - ΘC printf Ρ fmt.Printf
package main
import “fmt”
1 2 3 4 5 6 7
tutorial.go/main.go
DockerΨν
εΚWSLπυδμμ
ν
9
$ docker-compose exec app go run main.go
ΥΥ docker-compose ΨΥ docker πϖΔΡΘΡ ΡΗ docker-compose Ρ
MEMO
docker-compose πϖ
GoΨθΡ νΨ
“app” docker-compose.yml Ρ
πΨΡ
ΗΡυδμμπϖΨ
go run main.go
go run main.go
υδμhttps://github.com/cs-sysdes/tutorial.go
GCΠαΠCΟ
ΚμΠΟςΡ
12
if, switch if, switch switch fall-through Π
for Π for, while call-by-value call-by-value α α
ς

νΡ
ΔΡαΟ
Ε
:=
ΨνΡ θ ΨΡ
MEMO var

1 2 3 4 5 6 7
tutorial.go/main.go
tutorial.go/main.go
1 2 3 4 5 6 7 8
tutorial.go/main.go
1 2 3 4 5 6 7 8 9 10
tutorial.go/main.go

φ ΨπΠ
15
1 2 3 4 5 6 7
tutorial.go/main.go
func hello(name string) string { return fmt.Sprintf(“Hello %s!”, name) }
1 2 3 4 5 6 7 8 9 10 11
tutorial.go/main.go
return
Go

byte, uint, uint8, uint16, uint32, uint64 (byte uint8 εαφ)
float32, float64
complex64, complex128

stringμζΟ
ΔΔΨΡ
Procedure: FizzBuzz
for i from 1 to 30 if i % 15 == 0 print “FizzBuzz” else if i % 5 == 0 print “Buzz” else if i % 3 == 0 print “Fizz” else print i endif endfor
πϖ
FizzBuzz ΨΕΞ
- C break Κ continue
- Ρ
-
18
}
}
1 2 3
1 2 3
FizzBuzz ΨΕΞ
25ΨΡ
315ΨΡ

3 ”Fizz” Ψ
5 ”Buzz” Ψ
15 ”FizzBuzz” Ψ
19
MEMO
Go switch
C switch ζ fall through break
C switch Go switch
Go while
i10ΡΠΠΨ
1 2 3 4 5 6 7 8 9 10
switch prefecture { case “Hokkaido”: ... case “Tokyo”, “Yokohama”: ... fallthrough default: ... }
1 2 3 4 5 6 7 8 9
fall through ΡΘ
ΥΜΡ
αCSC.T253 νν ΨΡ
Go α
αΘC ςϖΨΡ
C dereference operator Ψ Ρ
CαΨ NULL Go nil
GCΡfree Ξ

increment_p(&i) fmt.Printf(“i = %d\n”, i) //=> “i = 1” }
func increment_v(i int) { // i = i + 1 }
func increment_p(i *int) { // *i = *i + 1 // nil }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ 34CSC.T364 τφ - Webνν
2. Goα
Goπϖ
var p *int p = NewInt()
1 2 3 4 5 6 7
→ GoGCΡ
/ 34CSC.T364 τφ - Webνν

CGo

24
1 2 3 4
1 2 3 4
Person p = { “Tech-chan”, 4 };
1 2 3 4
p := Person{ “Tech-chan”, 4, }
1 2 3 4
1 2 3 4
/ 34CSC.T364 τφ - Webνν

25
sprintf(p->name, “Tech-chan”); p->age = 4;
1 2 3 4 5
var p *Person p = new(Person)
p.name = “Tech-chan” p.age = 4
p := &Person{ name: “Tech-chan”, age: 4, }
1 2 3 4

Ψα
πΨΘ
ΕGoΘαΘϖϖμψφCΞ -> ΖΣ)
26
func ToString(p Person) string { // fmt.Sprintf(“name: %s, age: %d”, p.name, p.age) }
func ToString(p *Person) string { // () fmt.Sprintf(“name: %s, age: %d”, p.name, p.age) }
1 2 3 4 5 6 7
/ 34CSC.T364 τφ - Webνν
ϖ
ϖΨΡΨΡ
ΡϖΡ
27
func ToString(p Person) string { fmt.Sprintf(“name: %s, age: %d”, p.name, p.age) }
p := Person{name: “Tech-chan”, age: 4} ToString(p)
1 2 3 4 5 6
func (p Person) ToString() string { fmt.Sprintf(“name: %s, age: %d”, p.name, p.age) }
p := Person{name: “Tech-chan”, age: 4} p.ToString()
1 2 3 4 5 6
/ 34CSC.T364 τφ - Webνν
ϖ
1ΡΞΡ
πΡΨαΡ
ΟΡΡ
→ Θ type κϖΨϖΨΡ
ϖ
Java Ξ + ϖ + ϖ(φ)Ρ
28
.()
ϖ
ΞΠηυδμΨ
type Person struct { Name string Age int }
func (p Person) Print() { fmt.Printf(“Person(name: %s, age: %d)”, p.Name, p.Age) }
func Show(p Printable) { p.Print() }
techChan := Person{Name: “Tech-chan”, Age: 4} Show(Printable(techChan))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/ 34CSC.T364 τφ - Webνν
()
C ΥΠΟ
μψφ
30
var []
[index]
φαφ ()
ΨφαφΨΡ
ςαχΡ
φαφΨςαχΗΟζΡ
φαφμψφ
/ 34CSC.T364 τφ - Webνν
φαφ
φαφ(ϖφκτ) Ψ
πΨΠΡΡ
32


a1 (len: 4, cap: 4) a2 (len: 4, cap: 4)
/ 34CSC.T364 τφ - Webνν
υδμhttps://github.com/cs-sysdes/tutorial.go
$ docker-compose exec app go run main.go$ docker-compose up -d
ΣΕΡπϖΨΨΕΡ CννΝΘ
Ρκϖ

Recommended