Staged는 git add 명령어를 통해 Staging Area에 내역을 추가한 상태이며, git commit 명령을 통해한 Commit한 경우 Committed 상태입니다.
git status 명령어는 Git 프로젝트의 상태를 확인할 수 있는 명령어입니다.
파일을 만든 직후 git satus를 하니 Untracked files 목록에 방금 만든 firstFile.txt 파일이 있습니다.
아직 git add나 git commit을 하지 않았기에 Untracked 상태이며, Git이 추적관리 하고 있지 않은것입니다.
Staged 된 내역만을 Commit하기 때문에 Git 저장소에는 '두 번째 추가 내용' 의 변경사항만 커밋 되었고, '세 번째 추가 내용' 의 변경 사항은 워킹 디렉터리의 firstFile.txt에 남아 있는 것입니다.
메소드와 함수의 차이가 주로 문법적인 것임을 알 수 있고, 우리는 용도(use case)에 맞게 적절한 추상화기법을 사용하는게 좋을 것입니다.
한 가지 아주 유용한 메소드의 속성은 우리의 코드를 클린하게 유지하면서도 메소드들을 같이 묶을 수 있다는 것입니다. (the ability to chain them together)
type Person struct {
Name string
Age int
}
func (p *Person) withName(name string) *Person {
p.Name = name
return p
}
func (p *Person) withAge(age int) *Person {
p.Age = age
return p
}
func main() {
p := &Person{}
p = p.withName("John").withAge(21)
fmt.Println(*p)
// {John 21}
}
만약 우리가 함수로 같은 걸 하려했다면, 꽤 끔찍하게 보였을 것입니다.
p = withName(withAge(p, 18), "John")