好的,我被打败了.我尝试了一些东西,但我无法做到这一点.我现在需要一些帮助.我希望能够并排显示一些文字和图片(只有一行,因此不需要包装或其他乐趣.图片足够小以适合文本行):
This is a text <temp.jpg placed center to the textline>
Run Code Online (Sandbox Code Playgroud)
问题是,当我使用时
This is a text \includegraphics{temp.jpg}
Run Code Online (Sandbox Code Playgroud)
图片基线与文本基线对齐.我希望图片(垂直)中心与文本基线对齐.我怎样才能做到这一点?
假设我输入一个整数或整数数组或任何已知类型:
typedef int int2
Run Code Online (Sandbox Code Playgroud)
然后我为int2对重载operator*,现在如果我将变量a和b初始化为int.那么a和b之间的*是否会超负荷*?
我如何实现重载int,并且还使用*for int的方式.我应该创建一个新类型吗?
我似乎无法做到这一点(我以前在Python中可以做到这一点).让我解释 ..
假设我在Ruby中有以下方法:
def someMethod(arg1=1,arg2=2,arg3=3)
...
...
...
end
Run Code Online (Sandbox Code Playgroud)
现在我可以这样称呼这种方法
someMethod(2,3,4)
someMethod(2,3)
someMethod(2)
Run Code Online (Sandbox Code Playgroud)
并且参数是由它们各自的顺序进行的..但是如果我想在编程中的某个时刻给出arg2并且想要arg1和arg3的默认值呢?
我尝试编写someMethod(arg2 = 4),但这似乎不适用于Ruby 1.9.它做的是它仍然认为arg1是4.在python我至少可以逃脱这个,但在红宝石中我不确定.有没有人有任何优雅的想法?
我想弄清楚这样做的最好方法......
给出一个字符串
s = "if someBool || x==1 && y!=22314"
Run Code Online (Sandbox Code Playgroud)
我想使用Ruby来分离语句和布尔运算符..所以我想把它拆分成
["if","someBool","||","x","==","1","&&","y","!=","22314"]
Run Code Online (Sandbox Code Playgroud)
我可以使用s.split(),但是这只能用空格作为分界符...但我也希望x!= y被分割(它们是有效的布尔句子,它们之间没有空格以便于读取) .当然最简单的方法是要求用户在布尔运算符和变量之间放置空格,但有没有其他方法可以做到这一点?
我的问题是关于以下for循环:
x=[[1,2,3],[4,5,6]]
for v in x:
v=[0,0,0]
Run Code Online (Sandbox Code Playgroud)
这里如果你打印x你得到[[1,2,3],[4,5,6]] ..所以改变的v实际上并不是对x中列表的引用.但是,当您执行以下操作时:
x=[[1,2,3],[4,5,6]]
for v in x:
v[0]=0; v[1]=0; v[2] =0
Run Code Online (Sandbox Code Playgroud)
然后你得x为[[0,0,0],[0,0,0]].如果x中的列表很长,甚至做这样的事情,这种方法很难:
x=[[1,2,3],[4,5,6]]
for v in x:
for i in v:
i = 0
Run Code Online (Sandbox Code Playgroud)
会给我x [[1,2,3],[4,5,6]].我最好的选择是在xrange(0,3)中使用i:v [i] = 0 ..虽然我仍然想知道这里发生了什么以及当我有列表或更多列表时其他选择是什么嵌套列表.
我不确定这是不是一个愚蠢的问题,所以如果它是拍我!
我经常遇到这种"困境".我在C++中说过两个重载函数
说我们有两个F的重载(下面只是一个伪代码)
void F(A a, .../*some other parameters*/)
{
//some code part
//loop Starts here
G1(a,.../* some other parameter*/)
//loop ends here
//some code part
}
void F(B b, .../*some other parameters*/)
{
//some code part
//loop Starts here
G2(b,.../* some other parameter*/)
//loop ends here
//some code part
}
Run Code Online (Sandbox Code Playgroud)
其中A和B是不同类型,G1和G2是做不同事物的不同功能.除了G1和G2线之外,重载的代码部分是相同的,并且它们有时非常长且广泛.现在问题是..如何更有效地编写代码.当然,我不想重复代码(即使它很容易做到这一点,因为它只是一个复制粘贴例程).一位朋友建议宏......但那看起来很脏.这很简单,因为如果我现在知道它是非常愚蠢的.将不胜感激任何建议/帮助.
编辑:对不起那些想要代码示例的人.这个问题实际上是抽象的,因为我遇到了不同的"相似"情况,我问自己如何使代码更短/更清洁.在大多数情况下代码很长,否则我不会在第一时间问这个问题.正如KilianDS指出的那样,确保函数本身不是很长也是很好的.但有时候这是不可避免的.在那里我遇到这样的许多情况下,循环嵌套甚至(在对方即几个循环)和年初˚F我们有一个循环的开始和结束˚F我们结束这种循环.
何塞