简体   繁体   中英

F# I can't print char from string

I tried this:

open System
let main() =
    let mutable str1 = "qwerty"
    printfn "%c" str1[0]
main()

got this:

error FS0597: Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized

I found this site: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/strings and here it's working I don't know why. I found other sites, where everyone said about parentheses

open System
let main() =
    let mutable str1 = "qwerty"
    printfn "%c" (str1[0])
main()

and got this:

error FS0003: This value is not a function and cannot be applied

If you want to print a single character from a string you actually need to put a dot in between the object and the squared brackets.

printfn "%c" str1.[0]

MSFT docs: Access elements

Here writes Microsoft: "You can access array elements by using a dot operator (.) and brackets ([ and ])." However, their example actually also does not include the dot . Nevertheless, in order to access array elements, you need to use the dot operator.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM