Good things to know when you develop software with Golang - yunkon-kim/test-on-github-actions GitHub Wiki
Good things to know when you develop software with Golang
GolangμΌλ‘ μννΈμ¨μ΄λ₯Ό κ°λ°ν λ μμλλ©΄ μ’μ λ΄μ© μ λλ€.
Package naming
According to the The Go Blog - Package names](https://blog.golang.org/package-names#TOC_2.),
Good package names are short and clear. They are lower case, with no
under_scoresormixedCaps. They are often simple nouns, such as:
- time (provides functionality for measuring and displaying time)
- list (implements a doubly linked list)
- http (provides HTTP client and server implementations)
μμ±μ ν¨μ ꡬν
Golangμ Classκ° μκ³ , ꡬ쑰체(struct)λ΄μ ν¨μλ₯Ό ꡬνν μ μμ΅λλ€. λ°λΌμ, λ³λμ λ°©λ²μΌλ‘ μμ±μ(Constructor)λ₯Ό λ§λλ λ°©λ²μ μ€λͺ
ν©λλ€.
μ΄λ C++κ° λμ€κΈ° μ , Cμμ ꡬ쑰체μ ν¨μλ₯Ό κ°μ§κ³ μ¬μ©νλ λ°©μκ³Ό μ μ¬νλ€κ³ μκ°ν©λλ€.
λ³Έλ μμ±μλ μΈμ€ν΄μ€μ μ΄κΈ° μμ μ λ΄λΉν©λλ€. λ³μ μ΄κΈ°ν λΏλ§ μλλΌ, λ©λͺ¨λ¦¬ ν λΉ, μ°κ²° νμΈ λ± μΈμ€ν΄μ€κ° μ¨μ ν νμ©λκΈ° μν΄ νμν λͺ¨λ μμ μ μνν©λλ€. λ°λΌμ, μΈν°λ· μμ ꡬ쑰체 μμ± λ° λ³μ μ΄κΈ°ν λ§μ μννλ λ°©λ²μ μ μΈνμκ³ , μλμ κ°μ μλ₯Ό ν΅ν΄ Golang μμ±μ λ§λλ λ°©λ²μ μ€λͺ ν©λλ€.
package main
import "fmt"
type Speaker struct {
textOfSpeech string
}
func (s Speaker) GiveATalk(){
fmt.Println(s.textOfSpeech)
}
func (s *Speaker) writeTextOfSpeech(){
s.textOfSpeech = "Hello, I'm Alvin. ~~~~~"
}
//μμ±μ ν¨μ μ μ
func NewSpeaker() *Speaker {
s := &Speaker{}
s.writeTextOfSpeech()
return s //ν¬μΈν° μ λ¬
}
func main() {
s := NewSpeaker() // μμ±μ νΈμΆ
s.GiveATalk()
}
- Speakerλ₯Ό μμ±νλ©΄ μ°μ€λ¬Έμ μ΄ νμ μ°μ€μ ν μκ° μμ΅λλ€.
- κ·Έλ°λ° Golang λ¬Έλ²μΌλ‘λ μ΄λ₯Ό μννκΈ° μ΄λ ΅κΈ° λλ¬Έμ (μ μ¬) μμ±μ ν¨μ,
NewSpeaker()λ₯Ό μ μ νμμ΅λλ€. - main ꡬ문μμ
NewSpeaker()νΈμΆνμ¬ Speaker μΈμ€ν΄μ€λ₯Ό μμ±νλ©΄, λ΄λΆμμλ μΈμ€ν΄μ€SpeakerμΈμ€ν΄μ€λ₯Ό μμ±νκ³ , μ°μ€λ¬Έμ μμ±νν 리ν΄(ν¬μΈν°)ν©λλ€. - μ΄μ Golangν (μ μ¬) μμ±μ ν¨μ λ§λλ λ²μ΄μμ΅λλ€ π