有时在制作条件时,我需要代码什么都不做,例如,在这里,我希望Bash在$a
大于"10" 时什么也不做,如果$a
小于"5" 则打印"1 ",否则,打印"2":
if [ "$a" -ge 10 ]
then
elif [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
Run Code Online (Sandbox Code Playgroud)
这会产生错误.是否有一个命令什么都不做,也不会减慢我的脚本?
我在bash(:)中搜索了noop,但无法找到任何好的信息.这个运营商的确切目的或用例是什么?
我试过跟随,它对我来说是这样的:
[mandy@root]$ a=11
[mandy@root]$ b=20
[mandy@root]$ c=30
[mandy@root]$ echo $a; : echo $b ; echo $c
10
30
Run Code Online (Sandbox Code Playgroud)
请告知我这个运营商的任何实例或必须使用它的任何用例.
关于jQuery 1.4的发行说明,我来了acrosss $.noop()
,它是:
描述:一个空函数.(在1.4中添加)
当你希望传递一个什么都不做的函数时,可以使用这个空函数.
也许我在这里遗漏了一些深刻的东西,但究竟是什么实际使用传递空函数?
代码示例赞赏.
C#中的简单Noop语句是什么,不需要实现方法?(但内联/ Lambda方法还可以.)
我当前的用例:我想占用try-catch的catch-block,所以我可以在调试时检查它并检查异常.
我知道无论如何我应该处理/记录异常,但这不是本练习的重点.
有一段时间,需要在C++中使用无操作语句.例如,当实现assert()
在非调试配置中禁用时(也请参阅此问题):
#ifdef _DEBUG
#define assert(x) if( !x ) { \
ThrowExcepion(__FILE__, __LINE__);\
} else {\
//noop here \
}
#else
#define assert(x) //noop here
#endif
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的印象是正确的方法是(void)0;
用于无操作:
(void)0;
Run Code Online (Sandbox Code Playgroud)
但是我怀疑它可能会在某些编译器上触发警告 - 类似于C4555: expression has no effect; expected expression with side-effect
Visual C++警告,这种情况不是针对这种特殊情况发出的,而是在没有强制转换时发出的void
.
它普遍便携吗?有没有更好的办法?
我意识到这对于需要不到2秒钟实施的事情来说是一个荒谬的问题.但我依稀记得读过新标准引入的那个.
我grep'ed VC10的标题,并没有得到什么.你能帮我吗?这让我烦恼!:)
编辑:
第二个想法,我记得的新仿函数可能是无关的std::default_deleter
.
我想在完成模式匹配之后打印一个字符串列表,以进入这个强大的功能.
如何表达"无所事事但返回单位"的操作?
我的意思是:
let print_nodes nodes =
match nodes with
[] -> (* here i want to noop *)
| s :: t -> print_string s; print_nodes t
Run Code Online (Sandbox Code Playgroud) 有时候我不想做任何事情.
我只是想发表一个声明,这样我才能提出突破点.
在c和objective-c中我们有while(false);
说我想打破一个功能
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationItem.leftBarButtonItem=nil;
self.navigationItem.rightBarButtonItem=nil;
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(updateDisplays) name: NotificationUpdateArroworLocation object:nil];
PO(self.tableView.indexPathForSelectedRow);
while(false);//I put break point here so program stop here.
}
Run Code Online (Sandbox Code Playgroud)
在.net中我们没有什么(不确定我是否做到了?).
我们应该在PhP中使用什么?
我遇到了以下三行代码:
$_SERVER;
$_ENV;
$_REQUEST;
Run Code Online (Sandbox Code Playgroud)
对我来说,似乎这三行代码什么都不做.它们不会导致任何错误.
我知道这三个全局变量是什么,我只是不知道这三行代码在做什么.任何人都可以开导我吗?
整个文件 - 如果相关:
<?PHP
function register_global_array( $sg ) {
Static $superGlobals = array(
'e' => '_ENV' ,
'g' => '_GET' ,
'p' => '_POST' ,
'c' => '_COOKIE' ,
'r' => '_REQUEST' ,
's' => '_SERVER' ,
'f' => '_FILES'
);
Global ${$superGlobals[$sg]};
foreach( ${$superGlobals[$sg]} as $key => $val ) {
$GLOBALS[$key] = $val;
}
}
function register_globals( $order = 'gpc' ) {
$_SERVER; //See Note Below
$_ENV;
$_REQUEST;
$order = str_split( strtolower( $order …
Run Code Online (Sandbox Code Playgroud) 如果您编译如下代码
#include <atomic>
int load(std::atomic<int> *p) {
return p->load(std::memory_order_acquire) + p->load(std::memory_order_acquire);
}
Run Code Online (Sandbox Code Playgroud)
int load(std::atomic<int> *) PROC
mov edx, DWORD PTR [rcx]
npad 1
mov eax, DWORD PTR [rcx]
npad 1
add eax, edx
ret 0
Run Code Online (Sandbox Code Playgroud)
为什么是这样?有什么办法可以避免它而不放松内存顺序(这会影响代码的正确性)?
no-op ×10
c++ ×3
bash ×2
php ×2
atomic ×1
c# ×1
c++11 ×1
conditional ×1
javascript ×1
jquery ×1
jquery-1.4 ×1
ocaml ×1
shell ×1
visual-c++ ×1
x86-64 ×1