Как установить аргумент [<Out>]? - PullRequest
4 голосов
/ 24 октября 2011

Я использую аргумент out: [<Out>] message : string

Но когда я пытаюсь установить его: сообщение <- "в начальной позиции нет цифры" </p>

Яполучаю ошибку, потому что сообщение не является изменяемым.Как изложить аргумент?

Ответы [ 2 ]

6 голосов
/ 24 октября 2011

Предоставить параметр метода с типом byref<string> и атрибутом [<Out>] и использовать в качестве аргумента изменяемое значение с оператором address-of &:

open System.Runtime.InteropServices

let mutable msg = "abc"

let outmsg ([<Out>]message : byref<string>) =
    message <- "xyz"

msg <- "test"
outmsg(&msg)
msg;;

val mutable msg : string = "xyz"
val outmsg : byref<string> -> unit
0 голосов
/ 24 октября 2011

Выходные параметры похожи на ref - вам нужно использовать := вот так (взято из документации MSDN)

open System.Runtime.InteropServices;;
type dummy() =
     member this.MyMethod([<param: Out>] x : ref<int>) = x := 10 ;;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...