F#初学笔记01
2012-06-13 13:29:10 来源:WEB开发网核心提示: let changeType () = let x = 1 // bind x to an integer let x = "change me" // rebind x to a string let x = x + 1 // attempt to rebind to itself plu
let changeType () =
let x = 1 // bind x to an integer
let x = "change me" // rebind x to a string
let x = x + 1 // attempt to rebind to itself plus an integer
printfn "%s" x
changeType ()
在函数中的标识符和最外层才标识符是些不同的。函数定义中的标识符可以重复绑定值,这样你就不需要为创造新的标识符名而头痛。最外层的标识符是不能够重复绑定的,只可以定义一次。
let x=5
let x=x+3
printfn "%i" x
使用use
use和let相似,可以指定标识符的值。但是不同点在于使用use的话,一旦代码运行到作用域之外,该标识符会自动处理dispose。这对于某些操作,比如网络套接字,文件读写,数据库连接等很有必要。在.NET中,这种对象都实现了IDisposable接口,这个use类似c#中的using语句,主要的作用是释放资源。
open System.IO
// function to read first line from a file
let readFirstLine filename =
// open file using a "use" binding
use file = File.OpenText filename
file.ReadLine()
// call function and print the result
printfn "First line was: %s" (readFirstLine "mytext.txt")
// function to read first line from a file
let readFirstLine filename =
// open file using a "use" binding
use file = File.OpenText filename
file.ReadLine()
// call function and print the result
printfn "First line was: %s" (readFirstLine "mytext.txt")
任何只要实现了IDisposable接口的对象都可以使用use绑定。
use只能在函数内部使用,不能在最外层使用,因为,最外层的标识符作用域是全局的,不会失去活性,因此得不到释放。
更多精彩
赞助商链接