, ben Ancak, printf
çıktı bir türOCaml'de biçimlendirilmiş dize nasıl alınır? OCaml yılında
Printf.printf "Hello %s %d\n" world 123
gibi, çıkış biçimlendirilmiş dize Printf.printf
kullanabilirsiniz.
Dilediğim şey bir çıkış için değil, bir dize içindir. Örneğin, ben o zaman ben bunu nasıl s = "Hello World 123"
alabilirsiniz
let s = something "Hello %s %d\n" "world" 123
istiyor?
Bu gibi tanımlayabilir miyim: 'fmt =" Merhaba% s% d \ n ";; Printf.sprintf fmt "dünya" 123'? –
@JacksonTale, gerçekten emin değilim. Görünüşe göre '' fmt = Printf.sprintf '' Hello% s% d \ n '; fmt "dünya" 123 ;; 'ancak. – zch
@JacksonTale: Eğer bu şekilde yaparsanız, yanlış türde (biçim şeyleri yerine dize) çıkacaktır. OCaml'da dizeler ve biçim şeyleri arasındaki dizgi değişmezleri için bir "aşırı yükleme" var. Doğru olanı yapmak için, 'format_of_string' işlevini kullanmalısınız (bu bir tanımlama işlevidir, ancak tür sistemine yardımcı olur):' fmt = format_of_string '' Hello% s% d \ n '; Printf.sprintf fmt "dünya" 123'. Ya da belki bunu yapabilirsin (eğlenceli fmt -> Printf.sprintf fmt "dünya" 123) "Eğer yeterliyse Hello% s% d \ n" '. – newacct