这个简单的示例脚本可以帮我吗? 如何在单个“选择对象”上引用“自定义表达式属性”?
我想要:单个“选择对象”
dp
...但是未显示第三个属性“ MyPropRef”!
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="right"
android:layout_marginEnd="0dp">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay"
>
<SearchView
android:id="@+id/toolbar_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:maxWidth="1000000dp" />
</androidx.appcompat.widget.Toolbar>
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/toolbar_settings_button"
android:layout_width="40dp"
android:layout_height="match_parent"
android:src="@drawable/ic_settings_icon_foreground"
android:background="@color/colorPrimary"
/>
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
使用双选择对象管道时,显示“ MyPropRef”
Get-Process | Select-Object Id,
@{name="MyProp"; expression={$_.id}},
@{name="MyPropRef"; expression={$_.MyProp}}
谢谢
答案 0 :(得分:0)
Calculated properties仅对输入对象的原始属性起作用,它们不能相互引用 。
如果您需要基于先前计算的属性添加其他属性,则确实需要另一个(昂贵的)Select-Object
调用。
您的命令:
Get-Process | Select-Object Id,
@{name="MyProp"; expression={$_.id}},
@{name="MyPropRef"; expression={$_.MyProp}}
创建一个.MyPropRef
属性,但其值为$null
,因为System.Diagnostics.Process
自身输出的Get-Process
实例没有{ {1}}属性。
如果您希望不重复进行一次.MyPropRef
调用,则可以预先在变量中定义计算属性中使用的脚本块,并在计算属性定义中重复使用它们;例如:
Select-Object
这将产生如下内容:
$myPropExpr = { $_.id }
Get-Process | Select-Object Id,
@{ name="MyProp"; expression=$myPropExpr },
@{ name="MyPropRef"; expression={ "!" + (& $myPropExpr) }}