我正在编写一个命令行应用程序,它将数据作为命令行参数或来自cin.
有没有办法检查用户是否在应用程序中传输了一些数据($ ./myapp <test.txt),如果没有,只显示键盘输入的提示?
如果我正在检查!cin.good()/ cin.eof()等,则提示将永远不会出现.
我想做一些非常简单的事情,但是我得到了一个错误,我错过了什么?
int i;
int count;
TutorialAppDelegate *appDelegate = (TutorialAppDelegate *)[[UIApplication sharedApplication] delegate];
Animals *aAnimal = (Animals *)[appDelegate.animals objectAtIndex:i];
count = [animals count];
if (i < count)
{
NSLog(@"%@",aAnimal.animalName);
}
Run Code Online (Sandbox Code Playgroud)
错误:
'*** -[NSMutableArray objectAtIndex:]: index 22510243 beyond bounds [0 .. 5]'
Run Code Online (Sandbox Code Playgroud)
0 ... 5是正确的!数组中只有6个值.
并使用
NSLog(@"%@",aAnimal.animalName);
Run Code Online (Sandbox Code Playgroud)
out函数返回正确的值,当我也将i更改为0时.
我在Windows 7上尝试使用批处理文件打开GitBash shell并进行git调用.这是我的批处理文件的内容:
REM Open GitBash
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
Run Code Online (Sandbox Code Playgroud)
我注意到GitBash在下一个命令"git archive ..."之前注销.有人知道我是否可以将命令传递给GitBash以及如何?
麦克风
好的,这就是我要做的事情:我想制作一个小的PowerShell脚本,它接收我的音乐库的每个文件,然后对它做一个哈希值并将其写入一个文件,如下所示:
test.txt; 131 136 80 89 119 17 60 123 210 121 188 42 136 200 131 198
现在,当我开始编写脚本时,我需要先将已经存在的值与我的音乐库进行比较,但为此我只想在切断之后切断所有内容.所以它可以将文件名与文件名(或文件路径)进行比较......但是我很难过如何做到这一点,尝试用$ name = $ name -replace替换";*",""没有...
试图过滤...不知道D:
我真的很感激帮助.
如果你认为我使用了错误的编码语言,告诉我什么会更好,它只是我只使用过C和powershell
在我深入研究这个问题之前.让我说,通过Event Loop,我指的是http://en.wikipedia.org/wiki/Event_loop.这是浏览器实现的东西.欲了解更多信息,请阅读:http://javascript.info/tutorial/further-javascript-features/events-and-timing-depth.
这个问题很难而且很长,所以请尽量忍受!我非常感谢所有答案!
所以.现在,据我所知,在JavaScript中有一个主线程(在大多数浏览器环境中).所以,代码如下:
for (var color = 0x000; color < 0xfff; color++) {
$('div').css('background-color', color.toString(16));
}
Run Code Online (Sandbox Code Playgroud)
将生成从黑到白的动画,但你不会看到,因为渲染是在代码处理完成后(当下一个滴答发生时 - 浏览器进入事件循环).
如果你想看动画,你可以这样做:
for (var color = 0x000; color < 0xfff; color++) {
setTimeout(function() {
$('div').css('background-color', color.toString(16));
}, 0);
}
Run Code Online (Sandbox Code Playgroud)
上面的例子会生成一个可见的动画,因为setTimeout将一个新事件推送到浏览器Event Loop堆栈,该堆栈将在没有任何运行后进行处理(它进入Event Loop以查看下一步该做什么).
在这种情况下,浏览器似乎将0xfff(4095)事件推入堆栈,其中每个事件都通过它们之间的渲染过程进行处理.那么,我的第一个问题(#1)是什么时候进行渲染?它总是发生在事件循环堆栈中处理两个事件之间吗?
第二个问题是关于我给你的javascript.info网站链接中的代码.
...
function func() {
timer = setTimeout(func, 0)
div.style.backgroundColor = '#'+i.toString(16)
if (i++ == 0xFFFFFF) stop()
}
timer = setTimeout(func, 0)
....
Run Code Online (Sandbox Code Playgroud)
我的问题是,浏览器每次到达div.style. ... = ...线路时都会将新的"渲染"事件推送到事件循环堆栈吗?但是,由于setTimeout-call,它是否首先推送事件?那么,浏览器最终是否像堆栈一样:
setTimeout event
render …Run Code Online (Sandbox Code Playgroud) 该mmap系统调用的文件说,该函数将失败:
指定了MAP_FIXED,并且addr参数未进行页面对齐,或者所需地址空间的一部分位于用户进程的有效地址空间之外.
我找不到任何地方的文件说什么会是一个有效的地址映射.(我有兴趣在OS X和Linux上执行此操作,理想情况下,相同的地址对两者都有效...).
非常简单的例子 - 一个表,一个索引,一个查询:
CREATE TABLE book
(
id bigserial NOT NULL,
"year" integer,
-- other columns...
);
CREATE INDEX book_year_idx ON book (year)
EXPLAIN
SELECT *
FROM book b
WHERE b.year > 2009
Run Code Online (Sandbox Code Playgroud)
给我:
Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622)
Filter: (year > 2009)
Run Code Online (Sandbox Code Playgroud)
为什么它不执行索引扫描?我错过了什么?
我对另一个问题感到沮丧.所以我写了这个例子.
int main()
{
printf("%d", 1 && 2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
1
Run Code Online (Sandbox Code Playgroud)
在C#中.这是假的.为什么这是假的?此外,我不明白为什么我需要在这个例子中创建bool运算符,但不是在我的另一个问题,但无论如何.为什么以下是假的?对我来说完全是无稽之谈.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyInt a=1, b=2;
bool res=a && b;
Console.WriteLine("result is {0}", res);
}
class MyInt
{
public int val;
public static bool operator true(MyInt t) { return t.val != 0; }
public static bool operator false(MyInt t) { return t.val == 0; …Run Code Online (Sandbox Code Playgroud) 以下调用重载Enumerable.Select方法:
var itemOnlyOneTuples = "test".Select<char, Tuple<char>>(Tuple.Create);
Run Code Online (Sandbox Code Playgroud)
失败并出现歧义错误(为清晰起见,删除了名称空间):
The call is ambiguous between the following methods or properties:
'Enumerable.Select<char,Tuple<char>>
(IEnumerable<char>,Func<char,Tuple<char>>)'
and
'Enumerable.Select<char,Tuple<char>>
(IEnumerable<char>, Func<char,int,Tuple<char>>)'
Run Code Online (Sandbox Code Playgroud)
我当然可以理解为什么不明确指定类型参数会导致歧义(两个都会应用重载),但是在这样做后我没有看到.
对我来说似乎很清楚,目的是调用第一个重载,方法组参数解析为Tuple.Create<char>(char).第二个重载不应该适用,因为没有任何 Tuple.Create重载可以转换为期望的Func<char,int,Tuple<char>>类型.我猜测编译器很困惑Tuple.Create<char, int>(char, int),但它的返回类型是错误的:它返回一个二元组,因此不能转换为相关Func类型.
顺便说一句,以下任何一个使编译器开心:
Tuple.Create<char>也许这实际上是一个类型推断问题?).x => Tuple.Create(x).(在Select通话中使用类型推断很好).不出所料,尝试以Select这种方式调用其他重载也会失败:
var itemIndexTwoTuples = "test".Select<char, Tuple<char, int>>(Tuple.Create);
Run Code Online (Sandbox Code Playgroud)
这里的确切问题是什么?
这不是一个问题,而是让我感到非常兴奋!我写这个小例子只是为了证明相反 - 我预计编译器错误或其中一个值(111或222,我不确定).
scala> trait T1 { private val v = 111; def getValueT1 = v }
scala> trait T2 { private val v = 222; def getValueT2 = v }
scala> class T12 extends T1 with T2
scala> val t = new T12
scala> t.getValueT1
res9: Int = 111
scala> t.getValueT2
res10: Int = 222
Run Code Online (Sandbox Code Playgroud)
为什么不v被覆盖?当然,这只有vs是私有的,但仍然是有效的.
c# ×2
linux ×2
boolean ×1
browser ×1
c#-4.0 ×1
c++ ×1
command-line ×1
event-loop ×1
git ×1
indexing ×1
iphone ×1
javascript ×1
macos ×1
method-group ×1
mmap ×1
msysgit ×1
objective-c ×1
pipe ×1
postgresql ×1
powershell ×1
scala ×1
sdk ×1
sequence ×1
shell ×1
string ×1
traits ×1
unix ×1