Writing Multiline Bodies - kimjooyoon/meta-ontology-go GitHub Wiki
μ¬λ¬ μ€λ‘ λ°λ μμ±νκΈ°
main eb8477d5μ ν¬ν¨λ λ¬Έλ²μ
λλ€. 쑰건·μ§μ λ³μΒ·λμ
μ λ°±ν± μμ μ§μ
μμ±ν μ μμ΅λλ€. μ 체 μλ³Έ.
package bodycodegen
namespace bodycodegen
entity Integer id "bodycodegen://entity/integer"
activity ClampBelowZero(Integer) -> Integer computes `
let value = input
value = input
let accepted = value >= 0
if accepted {
return value
} else {
return 0
}
`
μ μ₯μμμ λ€μ λͺ λ ΉμΌλ‘ Go ν¨μλ₯Ό μμ±ν©λλ€.
gooo body-codegen --activity ClampBelowZero \
examples/body-codegen/raw-computes.gooo.fixture
gooo λΉλμ μ€μΉλ μμ μλ΄λ₯Ό λ°λ¦
λλ€. μ
λ ₯μ΄ μμμ΄λ©΄ 0,
κ·Έ λ°μλ μ
λ ₯μ λ°νν©λλ€. μλ³Έμ μλ―Έλ₯Ό μ½κ³ νμ
μ νμΈν λ€ μμ±ν©λλ€.
λ°λλ₯Ό κ³ μ ν΄ μμ±νλ μ΄ μμ μλ λͺ¨λΈ νλ¨μ΄ μμ΅λλ€. μμ°μ΄ μ§μμ λ°λΌ
νμ©λ ν보λ₯Ό 쑰립νκ³ μ¦μ μ€ννλ κ²½λ‘λ νμΌ μ€ν μλ΄μ μμ΅λλ€.
μ½λ κ·μΉ
main aeff3641λΆν°λ 쑰건 λ€μμ κ³μ μ€ννκ±°λ μΌμ° λ°νν λ elseλ₯Ό
μλ΅ν μ μμ΅λλ€. μ νλμ λ³Έλ¬Έμ λ€μμ²λΌ μ μ μλ μμ΅λλ€.
let value = input
if value < 0 {
return 0
}
return value
μ 체 κ²½λ‘μ λ°νκ³Ό μ§μ λ³μμ λ²μΒ·λμ νμ μ νμΈν©λλ€. λ μ½λ λ³Έλ¬Έμ μ€μ²© κ°±μ Β·μ‘°κΈ° λ°νκ³Ό νλ λͺ¨λΈ 쑰립μλ κ°μ κ·μΉμ μ¬μ©ν©λλ€.
- μΈλΆ λ°±ν± μμ μ€λ°κΏκ³Ό μμ¬λμλ κ·Έλλ‘ λ°λμ μ λ¬λ©λλ€.
- λ΄λΆ Text κ°μ λ°λμ λ¬Έμμ΄ κ·μΉμΌλ‘ ν΄μν©λλ€.
- λ°±ν±μ λ¬Έμμ΄μ λ«μ΅λλ€. κ·Έ λ¬Έμλ₯Ό ν¬ν¨νλ λ°λλ μ΄μ€ λ°μ΄ν νμμΌλ‘ ννν©λλ€.
- κΈ°μ‘΄ μ΄μ€ λ°μ΄νλ μ’ μ μ μ΄μ€μΌμ΄ν κ·μΉμ μ¬μ©ν©λλ€.
- νμ¬ μ κ· ν¬λ§·μ ν΄μκ°κ³Ό μμ μ IDλ₯Ό μ μ§νλ©° μ΄μ€ λ°μ΄ν λ¬Έμμ΄λ‘ μΆλ ₯ν©λλ€.
- λ°λμ 곡백 ꡬμ±μ΄ λ¬λΌμ§λ©΄ μμ± νμκ³Ό μμ€ ν΄μλ λ¬λΌμ§ μ μμ΅λλ€.
μ€μΉλ³Έμμ νμΈν λ²μ
Go1.27.1λ‘ λΉλν κΉ¨λν μ€μΉλ³Έμμ μ ν¨μλ₯Ό λ³λλ‘ μ»΄νμΌΒ·μ€ννμ΅λλ€. int64 μ λκ°Β·μμΒ·0Β·μμλ₯Ό ν¬ν¨ν 8/8 κΈ°λκ°μ΄ μΆ©μ‘±λμ΅λλ€. μλͺ»λ UTF-8 ν λ°μ΄νΈλ₯Ό λ£μ λ°λλ 6:1β6:2μμ μμ± μ μ κ±°λΆνμ΅λλ€.
νμ μμ€Β·μ체 16 KiB λͺ¨λΈΒ·κ²°μ λ‘ λ€ μ‘°κ±΄λ λ λ²μ© 쑰립νμ΅λλ€. μλ‘ 8ν μμ±Β·μ€μ νλ¨ 4νΒ·μ€μ μ€ν 16νμμ 1,024/1,024 μ ν κΈ°λκ°κ³Ό μ΄μ μμ± Go μ¬λ νμΌμ μΌμΉλ₯Ό νμΈνμ΅λλ€. μΆκ° νμ΅μ 0νμ λλ€. λ°λ³΅ μλ΅μ 77β94msμκ³ , μμ κ°λ° μμ€μ 28β33ms κ΄μΈ‘λ ν¨κ» λ¨κ²Όμ΅λλ€. μλ €μ§ μ μ μ°μ° κ°μ‘±μ 128κ° μ λ ₯μ λ°λ³΅ νμΈν λ²μμ λλ€.
κ°λ° #1190κ³Ό main #1191μ νμ μ¬μ― κ²μ¬μ λΆλ³ μ¦κ±°λ₯Ό λ 립 νμΈν΄ μ μ λ³ν©νμ΅λλ€. μ¬μ©λ²Β·λͺ¨λ μλ³ΈΒ·μ²μ μ€ν¨Β·μμκ³Ό μκ°.