안녕하세요!
Go에서 통화 변환기를 만들기 위한 또 다른 작은 미니 프로젝트!
경험에 따라 1~2시간 정도 소요되는 간단하지만 재미있는 프로젝트입니다. 한쪽 끝에서 통화 유형, 변환하려는 통화 및 변환할 금액을 가져옵니다.
최신 통화 데이터를 검색하기 위해 타사 서비스(https://openexchangerates.org)를 활용하고 있습니다.
나의 주요 기본 통화는 다음과 같습니다.
1) USD 2) EUR 3) GBP 4) JPY
그리고 TUI 입력을 통해 "다른" 통화도 지원됩니다. 기본 통화와 변환할 통화 모두입니다.
~ 소스코드: 여기
시작하자
What is your base currency? List $ USD United States Dollar £ GBP British Pound € EUR Euro ¥ JPY Japanese Yen •••
애플리케이션의 주요 기능은 다음과 같습니다.
- 사용자가 입력한 전환 세부정보 가져오기
- 해당 세부정보를 사용하여 Openxchangerates(최신 환율을 제공하는 타사 서비스)에 API 요청을 보냅니다.
- 통화 및 금액 변환
- 사용자에게 통화 및 금액 데이터 출력
사용된 패키지:
- net/http - 통화 교환 API에 대한 http 요청용
- github.com/charmbracelet/huh - TUI 인터페이스 양식
- github.com/charmbracelet/bubbles/list - 범용 항목 목록을 탐색할 수 있는 풍부한 기능
- 인코딩/json - API용 데이터를 마샬링하기 위해
- github.com/charmbracelet/lipgloss - 터미널 레이아웃에 대한 스타일 정의
어떻게 작동하나요?
이제 사용자로부터 전환 세부정보를 가져오는 첫 번째 기능에 대해 논의해 보겠습니다.
이 사용자 제공 데이터를 가져오기 위한 보기 방법이 만들어져야 했으며 사용자에게 어떤 통화로 변환할지, 어떤 통화로 변환할지 등에 대해 질문합니다.
func (m model) View() string { if m.err != nil { return fmt.Sprintf("Error: %v\n\nPress any key to continue.\n", m.err) } if m.finished { // Return an empty string when finished to avoid redundant output. return "" } switch m.stage { case 0: if m.isCustomInput { return questionStyle.Render("Enter your custom base currency code (e.g., USD):\n\n") + m.textInput.View() } return questionStyle.Render("What is your base currency?\n\n") + m.list.View() case 1: if m.isCustomInput { return questionStyle.Render("Enter your custom target currency code (e.g., EUR):\n\n") + m.textInput.View() } return questionStyle.Render("What do you want to convert to?\n\n") + m.list.View() case 2: return questionStyle.Render("How much to convert?\n\n") + m.textInput.View() default: return "" } }
What do you want to convert to? List $ USD United States Dollar £ GBP British Pound •••
How much to convert? > 200
이제 통화 변환 세부정보를 사용하고 Openxchangerates에 API 요청을 보내는 두 번째 사항에 대해 논의하겠습니다.
여기에서는 타사 환전 플랫폼에서 제공하는 API 키를 통해 Openxchangerates.org에서 최신 환율을 가져오거나 가져오고 있습니다. 제 경우에는 비밀 관리를 위해 .env를 사용했지만 특히 프로덕션 앱인 경우 이를 더 잘 처리할 수 있는 다른 방법이 많이 있습니다.
~ Openxchangerates.org 문서는 여기에 사용됩니다.
//api.go package api import ( "encoding/json" "fmt" "net/http" ) type CurrencyData struct { Base string `json:"base"` Rates map[string]float64 `json:"rates"` } func FetchRates(apiKey string) (CurrencyData, error) { url := fmt.Sprintf("https://openexchangerates.org/api/latest.json?app_id=%s&prettyprint=false", apiKey) resp, err := http.Get(url) if err != nil { return CurrencyData{}, err } defer resp.Body.Close() if resp.StatusCode != 200 { return CurrencyData{}, fmt.Errorf("API request failed with status: %s", resp.Status) } var data CurrencyData err = json.NewDecoder(resp.Body).Decode(&data) if err != nil { return CurrencyData{}, err } return data, nil }
그런 다음 통화 및 금액 변환을 진행하겠습니다.
//conversion.go package conversion func Convert(amount float64, rateFrom, rateTo float64) float64 { return amount * (rateTo / rateFrom) }
단순히 기준금액(금액), 기준통화의 환율, 환산할 환율을 입력받아 최종 환산금액을 반환하는 것입니다.
마지막으로 환산된 통화 및 금액 관련 데이터를 사용자에게 다시 제공합니다.
이러한 선택 뒤에 있는 논리를 제어하는 것은 애플리케이션 모델의 기본 상태 전환 핸들러 역할을 하는 업데이트 기능입니다.
1) USD 2) EUR 3) GBP 4) JPY
What is your base currency? List $ USD United States Dollar £ GBP British Pound € EUR Euro ¥ JPY Japanese Yen •••
결론
이것으로 상대적으로 빠른 통화 변환기가 거의 마무리되었습니다. 이 빠른 읽기가 즐거웠기를 바라며 자유롭게 시도해 보시기 바랍니다. 그렇게 나쁘지는 않습니다! ?.
다른 제3자 환전 서비스 제공업체도 많이 있으니 자유롭게 실험해 보세요. 다행히도 괜찮은 API가 있기를 바랍니다!
다음편에서 만나요! ??
위 내용은 Go 환율 계산기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

WhentestinggocodewithInitFunctions, useExplicitSetUpFunctionsOrsParateTestOvoiddenceNInItfictionSideffects.1) useExplicitSetUpFunctoControlGlobalVariableInitialization.2) CreateSeparateTesteSpilestobySinitFunctions 및 testesten

go'serrorhandlingreturnserrorsvalues whithuseexceptions와 달리 1) Go'sMethodensuresexpliciterRorhandling, promotingrobustcodebutincreasingverbosity.2) Javaandthon'sexextionslowercodebutcodebutcodebutcanlederforlortorifneterfortorifneteriflerortorifnetrorirederiflofertorifneateRoferfortoriflogertoflortoflerortofneateRofer

AneffectiveInterfaceingoisminimal, Clear, and Promotesloosecoupling.1) Minimizetheinterfaceforflexibilityandeasofimplementation.2) usicfacesforabStractionToswapimementationswhangingCallingCode.3) DesignStabilitySUsingInterfacestomockDep

중앙 집중식 오류 처리는 GO 언어에서 코드의 가독성과 유지 가능성을 향상시킬 수 있습니다. 구현 방법 및 장점에는 다음이 포함됩니다. 1. 비즈니스 로직에서 별도의 오류 처리 로직 및 코드를 단순화합니다. 2. 중앙 처리로 오류 처리의 일관성을 확인하십시오. 3. 연기 및 복구를 사용하여 공황을 포착하고 처리하여 프로그램 견고성을 향상시킵니다.

Ingo, alternativestoinitFunctionsincustomInitializationFenctionsandsingletons.1) CustomInitializationFunctionsallowExplicitControlover wheninInitializationOccurs, lexplodElayEdorConditionalSetUps.2) SingletEntensureOne-TimeInitializationIncOncurrent

gohandlesinterfacesandtypeassertionsefectively, codeflexibleandrobustness.1) typeSertionsOncaLownallowRuntImeTypeChecking, asseengehapeInterfaceAndCircLetype.2) TypeStwitchEshandleMultipleTypesePesePesePesePesePese -pervariousShapesimplementing Gry

GO 언어 오류 처리는 오류와 오류를 통해 더욱 유연하고 읽을 수 있습니다. 1.Errors.is는 오류가 지정된 오류와 동일한 지 확인하는 데 사용되며 오류 체인의 처리에 적합합니다. 2. 오류. 오류 유형을 확인할 수있을뿐만 아니라 오류를 특정 유형으로 변환 할 수 있으며 오류 정보 추출에 편리합니다. 이러한 기능을 사용하면 오류 처리 로직을 단순화 할 수 있지만 오류 체인의 올바른 전달에주의를 기울이고 코드 복잡성을 방지하기 위해 과도한 의존성을 피하십시오.

TomakeGoApplicationSRUNFASTERONDERFISTING, 사용 프로파일 링 툴, leverageConcurrency, andManageMemoryEffice.1) usepprofforcpuandMemoryProfingToIndifyBottLenecks.2) UtizeGoroutinesandChannelStoparAllelizetAskSandimProvePercormance.3) 3)


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
