9.3.2.1 用关键字 use 编程

728 篇文章 1 订阅
349 篇文章 0 订阅

9.3.2.1 用关键字 use 编程

 

我们已经知道,如果用关键字 use 创建值,编译器会自动在声明这个值的函数结尾,插入对 Dispose 方法的调用。这对于资源管理来说是有用的,但还有其他情况,我们需要在两个函数调用之间加包括一段代码。

假设我们希望用不同的颜色输出文本到控制台,然后,再恢复原来的颜色。用传统的方法,我们必须保存原来的颜色,设置新的颜色,发送输出到控制台,再恢复原来的颜色。

使用 use 关键字,就能完成同样的功能,但更优雅。我们可以写一个函数,改变控制台的颜色,并返回 IDisposable 值;这个值包含 Dispose 方法,调用时,恢复原来的颜色,由于有了 use 关键字,方法会自动调用。清单 9.13 显示了这个函数和对它的使用的演示。

 

Listing 9.13 Setting console color usingIDisposable (F# Interactive)

 

> open System;;

 

> let changeColor(clr) = 

     let orig =Console.ForegroundColor     [1]

    Console.ForegroundColor <- clr    [2]

     { new IDisposablewith     [3]

        member x.Dispose() = 

          Console.ForegroundColor <- orig };;  [4]

val changeColor : ConsoleColor –>IDisposable

 

> let hello() = 

     use clr =changeColor(ConsoleColor.Red)   [5]

    Console.WriteLine("Hello world!") 

;;    [6]

val hello : unit –> unit

 

代码中最重要的部分是 changeColor 函数。我们可以想像一下,代码包含两部分。第一部分在函数调用时立即执行,第二部分被返回,并在以后执行。代码的第一部分,首先保存原来的颜色[],然后,设置新的颜色[2]。

第二部分需要作为结果返回。我们把它作为函数返回(可能使用 lambda 函数语法),但随后,调用者将必须显式调用它。相反,我们使用对象表达式创建 IDisposable 值[3],把恢复原来颜色的代码放在 Dispose 方法中[4]。

当使用 changeColor 函数时,第一部分代码(设置新的颜色)立即执行[5]。我们使用 use 关键字保存结果,因此,在函数结的尾,Dispose 方法被调用,并恢复原来的颜色。在图 9.2 中可以看到,在 F# Interactive 控制台窗口中运行代码的结果。注意,我们必须使用独立的 F# Interactive 控制台版本,而不是集成在 Visual Studio 中的窗口,因为它不支持改变文本的颜色。

 

图 9.2 使用 changeColor 函数改变控制台文字的颜色。可以看到,颜色只在 Hello 函数里面改变,然后,就恢复原来颜色了。

 

同样的想法是在其他情况下也是非常有用的,比如,临时将图形界面中光标改变成适合“请等待”的标识,或对特定语言代码进行单元测试时,暂时把当前的线程的语言改变到特定的值。在这里的用词是暂时,说明“改变一些内容,做一些工作,再恢复原始值”的模式,非常适用于 use 关键字!

在展示面向对象特性的所有示例中,我们都使用了标准的 F# 类型,接口和对象表达式。这在以函数方式使用 F# 时,是很正常的;但是,语言还支持其他面向对象的特性。本书主要讨论函数式编程,因此,我们不会涉及所有内容,但要看几个最重要的例子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "nxos.9.3.8.bin"是指Cisco Nexus交换机操作系统的版本号为9.3.8的二进制文件。Cisco Nexus交换机是用于数据中心网络的高性能交换设备,而nxos.9.3.8.bin则是该交换机所运行的操作系统的一部分。 nxos.9.3.8.bin具有以下特点和功能: 1. 版本号:9.3.8指的是操作系统的主要版本、次要版本和修订版本。这表明该操作系统是第9个主要版本的第3个次要版本,其中包含了8次修订,所以它是该操作系统的一个较新的版本。 2. 功能增强:每个操作系统版本都会进行一些功能增强和错误修复。所以,nxos.9.3.8.bin很可能包含了一些以前版本中存在的问题的修复和新功能的添加。这将有助于提高交换机的性能和稳定性。 3. 安全性:更新操作系统版本是维护网络安全的重要措施之一。nxos.9.3.8.bin可能包含了一些安全漏洞的修复,以增强交换机在网络中的保护能力。 4. 兼容性:操作系统版本必须与硬件兼容才能正常运行。因此,nxos.9.3.8.bin可能只适用于特定的硬件平台和型号。在升级操作系统之前,必须确认它的兼容性,以确保良好的性能和稳定性。 总之,nxos.9.3.8.bin是Cisco Nexus交换机操作系统的一个较新的版本,通过更新操作系统,可以提高交换机的性能,修复漏洞,增强网络安全,并确保与兼容硬件平台的正常运行。 ### 回答2: nxos.9.3.8.bin是指Cisco Nexus操作系统的版本号为9.3.8的二进制文件。 Cisco Nexus操作系统(NX-OS)是一种用于Cisco Nexus系列交换机的专业网络操作系统。它提供了高性能、高可靠性和高安全性的网络解决方案。 nxos.9.3.8.bin作为二进制文件,是指包含了操作系统可执行代码的二进制文件。它是操作系统的核心部分,负责管理和控制交换机的各种功能。 将nxos.9.3.8.bin安装到交换机上,可以使交换机运行在该特定版本的操作系统之上。这个版本可能包含了一些新的功能、修复了一些已知的问题,或者提供了一些性能优化。 通过更新到nxos.9.3.8.bin,用户可以获得更好的性能、更稳定的系统以及更好的网络安全。此外,也可能会提供一些新的功能,以满足不断变化的网络需求。 更新操作系统需要谨慎操作,因为操作系统是交换机的核心组件,错误的安装或配置可能导致交换机无法正常工作。在更新操作系统之前,建议先仔细查看更新文档,了解新版本的特性和要求,同时备份重要的配置文件以便恢复。 总之,nxos.9.3.8.bin是Cisco Nexus交换机操作系统版本9.3.8的二进制文件,可以为交换机提供更好的性能、稳定性和安全性,并可能包含一些新的功能。更新操作系统时需谨慎操作,以确保交换机的正常运行。 ### 回答3: nxos.9.3.8.bin是思科公司推出的一款网络操作系统(NX-OS)的固件版本。NX-OS是专门为思科数据中心交换机而设计的操作系统,具有高性能、高可用性和可扩展性等特点。 nxos.9.3.8.bin版本是该操作系统的一个特定版本,其中的“9.3.8”表示该固件版本的主要版本号、次要版本号和修订版本号。这个版本号的每一部分都具有特定的含义。主要版本号通常表示重要的新功能、架构变化或较大的更新。次要版本号表示中等规模的新功能、改进和修复。修订版本号通常表示小规模的维护更新和错误修复。 使用nxos.9.3.8.bin版本的固件可以带来一些好处。首先,nxos.9.3.8.bin版本可能包含了一些新的功能和改进,可以提高网络设备的性能和功能。其次,该版本可能修复了一些与之前版本相关的错误和安全漏洞,提高了系统的稳定性和安全性。此外,使用相同版本的固件可以帮助网络管理员更好地管理和维护网络设备,提高网络的可管理性。 然而,需要注意的是,选择使用哪个固件版本取决于具体的需求和网络环境。在更新固件之前,一定要了解新版本的功能和变化,并进行适当的测试,以确保其兼容性和稳定性。 总之,nxos.9.3.8.bin是思科公司推出的一款网络操作系统的特定固件版本,它可以提供更强大和稳定的网络功能,并修复之前版本的错误和漏洞。适当选择和更新固件版本可以提高网络设备的性能、安全性和可管理性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值