使用“:help z”阅读手册显示了可以重绘窗口的各种命令,例如z.用光标在中心重绘或zb在屏幕底部重绘。
zt很好,但我会发现能够用光标在页面下方 25% 处重画会更舒服(这样我刚刚写的内容仍然可见)。除了宏之外,还有更简单的方法来实现这一点吗?
我一直在阅读精彩的学习你是一个Haskell,我来到关于类型和类型类的章节.我很困惑你如何模仿等级,就像你在古典语言中那样.例如,我知道如果我想要一个"类"的武器,那么这样的事情是可能的:
data Weapon =
Sword { sharpness :: Int, weight :: Int, name :: String }
| Mace { spikeyness :: Int, weight :: Int, name :: String }
deriving (Eq)
Run Code Online (Sandbox Code Playgroud)
这是一个做事的好方法吗?如果这个方法是正确的,那么我很难看到你将如何为每个构造函数实现不同的行为:例如,如果你想以不同的方式显示武器,这取决于它是剑还是钉锤......
instance Show Weapon where
show w = "This is " ++ name w ++ ". It has a weight of " ++ (show $ weight w)
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的,但是如果我试图显示所有字段,这个函数会遇到问题,因为剑不是spikey而且maces不锋利.我如何在Show类中为Maces和Swords创建不同的实例?
这个表达式是评估2 ^ x的一种方法(我知道这种方法的危险性):
2 << (x-1)
Run Code Online (Sandbox Code Playgroud)
替换x = 0并且表达式给出了所需的结果1.但是当它放在一个函数中时,它总是返回0:
int fast_2_to_the(int x) {
return 2 << (x-1);
}
Run Code Online (Sandbox Code Playgroud)
这可以在这个程序中观察到:
int main(int argc, char *argv[]) {
printf("2 << (0-1) = %d\n", 2 << (0-1));
printf("fast_2_to_the(0) = %d\n", fast_2_to_the(0));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
其中给出了以下输出:
2 <<(0-1)= 1
fast_2_to_the(0)= 0
为什么会这样?我是C的初学者,最近一直在学习按位运算符,所以任何相关的建议都会受到赞赏.