[英]F# error FS0039: The value or constructor 'input' is not defined
let getName name:string =
printfn "the name is %s" name
我想做的就是讓代碼顯示一個字符串,但是當我輸入例如“julian”時,我得到了 FS0039 錯誤,但是當我將它更改為 (name:int) 並輸入一個數字時,它工作得很好
我認為您缺少name:string
周圍的括號,否則: string
被解析為整個 function 的返回值,如果您的 function 僅執行打印等副作用,則返回值為unit
。
let getName name:string =
表示getName
是一個 function 返回一個string
並采用要推斷的類型的參數name
- 它的臨時簽名是(name: 'a) -> string
。 誤導的是空格:這不是因為這里沒有空格name:string
:string
指的是參數name
而不是 function getName
。
基於它的主體printfn "the name is %s" name
:
unit
name
的類型為string
(參見%s
占位符)這樣你就可以:
let getName (name: string) =...
let getName name =
依賴於由於%s
在這里工作的類型推斷。 最后一點:您的 function 被稱為“獲取某些東西”,但實際上什么也沒返回。 它不一致,使其更難使用和維護。 像greet
、 print
、 printName
這樣的東西更合適。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.