簡體   English   中英

F# 錯誤 FS0039:未定義值或構造函數“輸入”

[英]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

  • function 應該返回unit
  • 參數name的類型為string (參見%s占位符)

這樣你就可以:

  • 要么添加括號let getName (name: string) =...
  • 或(更好)刪除類型注釋let getName name =依賴於由於%s在這里工作的類型推斷。

最后一點:您的 function 被稱為“獲取某些東西”,但實際上什么也沒返回。 它不一致,使其更難使用和維護。 greetprintprintName這樣的東西更合適。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM