감자의 탄생

6336 단어 go
Potato는 제가 요즘 작업하고 있는 작은 오픈 소스 프로젝트의 코드명입니다. 나는 평범한 프로그래머가 하루에 이 프로그램을 작성할 수 있어야 한다고 생각하지만, 나에게 더 현실적인 추정은 5일에서 3개월 사이가 될 것입니다...

한 가지 더: 감자가 목표로 하는 것을 이미 수행하는 프로그램이 있지만 저는 시작 대기 시간이 짧은 바이너리를 생성하는 기본 언어인 Go로 Potato will을 작성하고 있습니다. 작은 CLI 프로그램에 적합합니다.

어쨌든 한 현자는 이렇게 말했습니다.

A journey of a thousand miles begins with a single step.




Go를 사용하여 컬러로 문자열 쓰기



이것은 감자가 필요로 할 기능입니다. 아래 코드 스니펫은 Go를 사용하여 문자열을 컬러로 인쇄하는 방법을 보여줍니다.

package main;

import (
    "github.com/fatih/color"
)

func main() {
    color.Red("Hello world")
}


github.com/fatih/color에서 더 많은 예를 참조하십시오.


그리고 조금 더 작업: 문자열을 줄로 나누고 각 줄 앞에 색 접두사를 추가하고 화면에 인쇄합니다.

package main

import (
    "fmt"
    "strings"

    "github.com/fatih/color"
)

func main() {
    input := `
    This is a
    multiline
    string
    `

    for _, line := range strings.Split(input, "\n") {
        fmt.Println(color.RedString("[TOMATO] ") + line)
    }

    for _, line := range strings.Split(input, "\n") {
        fmt.Println(color.GreenString("[LETTUCE] ") + line)
    }
}



또 다른 예: 텍스트 파일의 모든 줄에 다채로운 접두사를 추가하는 비효율적인 방법:

package main

import (
    "fmt"
    "log"
    "os"
    "strings"

    "github.com/fatih/color"
)

func main() {
    body, err := os.ReadFile("/workspaces/lorem.txt")
    if err != nil {
        log.Fatal(err)
    }

    for _, line := range strings.Split(string(body), "\n") {
        fmt.Println(color.RedString("[PREFIX] ") + line)
    }
}



가능한 호출 구문:

$ potato --std-out-color green \
         --std-out-prefix "[STDOUT] " \
         --std-err-color red \
         --std-err-prefix "[STDERR] " \
         --command build --project ./proj1 

좋은 웹페이지 즐겨찾기