수색…


문자열 리터럴

let string1 = "Hello" //simple string

let string2 = "Line\nNewLine" //string with newline escape sequence

let string3 = @"Line\nSameLine" //use @ to create a verbatim string literal

let string4 = @"Line""with""quoutes inside" //double quoute to indicate a single quoute inside @ string

let string5 = """single "quote" is ok""" //triple-quote string literal, all symbol including quote are verbatim

let string6 = "ab
cd"// same as "ab\ncd"

let string7 = "xx\
    yy" //same as "xxyy", backslash at the end contunies the string without new line, leading whitespace on the next line is ignored 

간단한 문자열 형식 지정

결과적으로 문자열을 형식화하고 가져 오는 데는 여러 가지 방법이 있습니다.

.NET 방식은 String.Format 또는 StringBuilder.AppendFormat 을 사용하는 것입니다.

open System
open System.Text

let hello = String.Format ("Hello {0}", "World")
// return a string with "Hello World"

let builder = StringBuilder()
let helloAgain = builder.AppendFormat ("Hello {0} again!", "World")
// return a StringBuilder with "Hello World again!"

F #에는 문자열을 C 스타일로 포맷하는 기능도 있습니다. 각 .NET 기능에는 다음과 같은 기능이 있습니다.

  • sprintf (String.Format) :
open System

let hello = sprintf "Hello %s" "World" 
// "Hello World", "%s" is for string

let helloInt = sprintf "Hello %i" 42 
// "Hello 42", "%i" is for int

let helloFloat = sprintf "Hello %f" 4.2 
// "Hello 4.2000", "%f" is for float

let helloBool = sprintf "Hello %b" true 
// "Hello true", "%b" is for bool

let helloNativeType = sprintf "Hello %A again!" ("World", DateTime.Now) 
// "Hello {formatted date}", "%A" is for native type

let helloObject = sprintf "Hello %O again!" DateTime.Now 
// "Hello {formatted date}", "%O" is for calling ToString
  • bprintf (StringBuilder.AppendFormat) :
open System
open System.Text

let builder = StringBuilder()

// Attach the StringBuilder to the format function with partial application
let append format = Printf.bprintf builder format

// Same behavior as sprintf but strings are appended to a StringBuilder
append "Hello %s again!\n" "World"
append "Hello %i again!\n" 42
append "Hello %f again!\n" 4.2
append "Hello %b again!\n" true
append "Hello %A again!\n" ("World", DateTime.Now)
append "Hello %O again!\n" DateTime.Now

builder.ToString() // Get the result string

.NET 함수 대신 이러한 함수를 사용하면 다음과 같은 이점이 있습니다.

  • 유형 안전
  • 부분 적용
  • F # 기본 유형 지원


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow