# Support Guard Control like swift

**URL:** <https://discuss.kotlinlang.org/t/support-guard-control-like-swift/2000>\
**Category:** Uncategorized\
**Created:** [September 29, 2016, 11:53am UTC](https://discuss.kotlinlang.org/t/support-guard-control-like-swift/2000 "2016-09-29T11:53:28Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![liufsd](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/liufsd/32/1731_2.png) [@liufsd](https://discuss.kotlinlang.org/u/liufsd)\
**Post date:** [November 23, 2016, 6:43am UTC](https://discuss.kotlinlang.org/t/support-guard-control-like-swift/2000/2 "2016-11-23T06:43:47Z")

</div>

inline infix fun T.or(orBlock: () → T) = if (this == null) orBlock() else this

> [@Support for Groovy style "Power Assertion" in Kotlin?](https://discuss.kotlinlang.org/t/support-for-groovy-style-power-assertion-in-kotlin/427/13):
>
> Does this seem like it could work for you? inline infix fun \<T\> T.or(orBlock: () -\> T) = if (this == null) orBlock() else this Here’s an example: val a: String? = null val realA = a or { "b" // imagine we actually did work instead } println(realA) // prints out "b"

---

_[View the full topic](https://discuss.kotlinlang.org/t/support-guard-control-like-swift/2000)._
