Thread overview | ||||||
---|---|---|---|---|---|---|
|
December 07, 2019 How to invert bool false/true in alias compose? | ||||
---|---|---|---|---|
| ||||
import std; alias cmd = compose!(to!bool, wait, spawnShell, to!string); void main(){ writeln(cmd("where notepad.exe")); } Result: C:\Windows\System32\notepad.exe C:\Windows\notepad.exe false The result show "false" because good spawnshell command return 0 and 0 to bool is false. But I want to invert false to true to get true or false if command success. |
December 07, 2019 Re: How to invert bool false/true in alias compose? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marcone | On Saturday, 7 December 2019 at 04:00:53 UTC, Marcone wrote:
> import std;
>
> alias cmd = compose!(to!bool, wait, spawnShell, to!string);
>
> void main(){
> writeln(cmd("where notepad.exe"));
> }
>
>
> Result:
>
> C:\Windows\System32\notepad.exe
> C:\Windows\notepad.exe
> false
>
>
> The result show "false" because good spawnshell command return 0 and 0 to bool is false. But I want to invert false to true to get true or false if command success.
These all work:
alias cmd = compose!(unaryFun!"!a", to!bool, wait, spawnShell, to!string);
alias cmd = compose!("!a", to!bool, wait, spawnShell, to!string);
alias cmd = compose!(b => !b, to!bool, wait, spawnShell, to!string);
|
December 07, 2019 Re: How to invert bool false/true in alias compose? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marcone | On 07.12.19 05:00, Marcone wrote:
> import std;
>
> alias cmd = compose!(to!bool, wait, spawnShell, to!string);
>
> void main(){
> writeln(cmd("where notepad.exe"));
> }
>
>
> Result:
>
> C:\Windows\System32\notepad.exe
> C:\Windows\notepad.exe
> false
>
>
> The result show "false" because good spawnshell command return 0 and 0 to bool is false. But I want to invert false to true to get true or false if command success.
alias cmd = compose!(not!(to!bool), wait, spawnShell, to!string);
|
December 07, 2019 Re: How to invert bool false/true in alias compose? | ||||
---|---|---|---|---|
| ||||
Posted in reply to mipri | On Saturday, 7 December 2019 at 04:05:23 UTC, mipri wrote:
> On Saturday, 7 December 2019 at 04:00:53 UTC, Marcone wrote:
>> import std;
>>
>> alias cmd = compose!(to!bool, wait, spawnShell, to!string);
>>
>> void main(){
>> writeln(cmd("where notepad.exe"));
>> }
>>
>>
>> Result:
>>
>> C:\Windows\System32\notepad.exe
>> C:\Windows\notepad.exe
>> false
>>
>>
>> The result show "false" because good spawnshell command return 0 and 0 to bool is false. But I want to invert false to true to get true or false if command success.
>
> These all work:
>
> alias cmd = compose!(unaryFun!"!a", to!bool, wait, spawnShell, to!string);
>
> alias cmd = compose!("!a", to!bool, wait, spawnShell, to!string);
>
> alias cmd = compose!(b => !b, to!bool, wait, spawnShell, to!string);
Thank you very much mipri! Work very well!
|
Copyright © 1999-2021 by the D Language Foundation