作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我的 shell 启动时,我加载了一个外部脚本,其中包含一些我用来测试的功能。就像是:
# Include Service Test Tools
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
. $scriptPath\SvcTest.ps1
SvcTest.ps1
,我有两个功能:
function isURI ([string] $address)
{
($address -as [System.URI]).AbsoluteURI -ne $null
}
function Test-Service ([string] $url)
{
if (-Not (isURI($url)))
{
Write-Host "Invalid URL: $url"
return
}
# Blah blah blah, implementation not important
}
isURI
函数基本上只是一个实用函数,它允许
Test-Service
或许还有其他函数验证 URI。但是,当我启动 shell 时,我看到
isURI
是一个全局加载的函数。我什至可以输入
isURI http://www.google.com
从命令行返回
True
.
isURI
私有(private)的,因此仅在
SvcTest.ps1
内起作用可以使用它,同时仍然允许
Test-Service
成为全局性的?基本上,我正在寻找一种在 PowerShell 脚本中使用属性封装的方法。
最佳答案
如果你想为你的函数使用一个私有(private)作用域,它在 Powershell 中是这样完成的。
function Private:isURI ([string] $address)
{
($address -as [System.URI]).AbsoluteURI -ne $null
}
关于powershell - 有没有办法在 PowerShell 脚本中使某些函数成为 "private"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25123877/
我是一名优秀的程序员,十分优秀!