小编mk1*_*k12的帖子

一般编程 - 否则,或者为了清楚起见

在一个变量可能有两个不同的值的情况下,如果它是一个变量,你会做一些不同的事情,如果是另一个变量,你会这样做:

if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)

或者你会这样做:

if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else if (myVariable == SECOND_POSSIBLE_VALUE) { ... }
Run Code Online (Sandbox Code Playgroud)

为清楚起见,在一种情况下,读者不一定能够告诉他们做同样的事情(但是否则是"不必要的"表达)?那你会怎么做?谢谢!

编辑:实际上有更多不同的选项,如:三元运算符,if-else,if-elseif,if-elseif-else,-if-else(带断言),switch.每个人都有自己的位置,但很难决定......

if-statement code-readability clarity

4
推荐指数
1
解决办法
584
查看次数

iPhone Dev - 在哪里放置延迟加载代码

我已经有了这样的问题,但无论如何我已经删除了它.

我有一个非常简单的应用程序,它具有根视图控制器,并在两个其他视图控制器视图之间切换.所以在我的根视图控制器中,它延迟加载其他两个视图控制器的实例.每次按下工具栏中的切换按钮时,将显示当前正在显示的视图控制器(其视图)(设置为nil),并加载新视图控制器并将其添加到子视图中.

因为我加载了我的视图控制器并在特定时间卸载,所以在getter中的延迟加载代码非常混乱,因为我实际上并不想在我使用它们时正确加载它们,我需要加载它们才能使翻转动画看起来不错.所以我想我想让loadFirstVC和loadSecondVC方法加载视图控制器.这是一个好主意吗?

iphone lazy-loading clarity uiviewcontroller

4
推荐指数
1
解决办法
1465
查看次数

目标C - 使用访问器,如果没有任何不同

在目标c中,如果使用getter并直接访问ivar做完全相同的事情,getter中没有延迟加载代码,它所做的只是返回ivar,你是否仍然会使用访问器或直接访问ivar,因为有没有不同?为什么?

编辑:我在课堂上谈论.

properties objective-c accessor

4
推荐指数
1
解决办法
1081
查看次数

这个基本的pygame结构怎么样?

这是我现在如何实现我的简单pygames:

import pygame, sys
from pygame.locals import *

def run_game():
    pygame.init()

    SIZE = (640, 400)
    BG_COLOUR = (0, 0, 0)
    LINE_COLOUR = (255, 255, 255)

    screen = pygame.display.set_mode(SIZE)
    clock = pygame.time.Clock()

    while True:
        time_passed = clock.tick(30)
        for event in pygame.event.get():
                if event.type == QUIT:
                        exit_game()

        screen.fill(BG_COLOUR)
        pygame.draw.aaline(screen, LINE_COLOUR, (1, 1), (639, 399))
        pygame.display.flip()

def exit_game():
    sys.exit()

if __name__ == "__main__"
    run_game()
Run Code Online (Sandbox Code Playgroud)

我还看到一个keeprunning标志用于退出主事件循环,而不是使用pygame.event.poll()循环pygame.event.get().任何建议,如变量的大小写/命名,任何使其更有效或可读的东西?

python pygame structure

4
推荐指数
1
解决办法
4951
查看次数

C++算术运算符重载 - 自动扩展?

我有一个Vector代表2D矢量的类.模板允许任何数字类型用于xy分量.例如,我重载的算术运算符之一是*将向量与标量相乘:

template <typename T, typename U>
inline const Vector<T> operator*(const Vector<T>& vector, U scalar) {
    return Vector<T>(vector.x * scalar, vector.y * scalar);
}
Run Code Online (Sandbox Code Playgroud)

(我还有一个函数,参数顺序相反scalar * Vector,除此之外Vector * scalar).

正如您所看到的,我使用<T, U>而不是简单地<T>使标量不必与Vector相同.当我没有这样做时,令人惊讶的Vector<double> * int是不会编译(我认为int会自动加宽).

无论如何,我不只是想回归一个Vector<T>.我想模仿内置类型并返回具有更高精度的那个,T或者U.例如,Vector<int> * double => Vector<double>同时Vector<double> * short => Vector<double>.

这可能吗?

c++ generics math templates operator-overloading

4
推荐指数
1
解决办法
1274
查看次数

目标C - 哪种语法?

您认为哪种语法更好/更易读?

if(!myViewController.view.superview)
Run Code Online (Sandbox Code Playgroud)

要么:

if(myViewController.view.superview == nil)
Run Code Online (Sandbox Code Playgroud)

谢谢!!

syntax null boolean objective-c

3
推荐指数
2
解决办法
358
查看次数

Java - int/long,float/double

我明白"2.5"自动是双倍的,为了使它成为一个浮点数,我需要做"2.5F"(或者F应该是小写?),并且我应该使用浮点数,比方说,如果我有一个常数只需要2个小数位(如安大略省PST税的"0.08F"),但我不确定"12"是int还是long,但我知道"12L"是长的,但是"长" l = 12"和"long l = 12L"似乎编译成相同的东西,如果我想要最大的非浮点精度,我使用long,如果我知道我不需要超出int的限制,则使用int.

如果那里有不对的东西,请纠正我,并回答我的问题.

java floating-point double primitive-types long-integer

3
推荐指数
2
解决办法
3万
查看次数

Java,Java VM,Java平台,

有人可以解释Java Platform SE(6),Java,Java VM等的差异吗?谢谢.

java jvm

3
推荐指数
1
解决办法
596
查看次数

一般编程:十进制数,浮点数

我可能完全错了,我对此一无所知,但我对编程语言中的十进制数字数据有疑问.我知道浮点数并不完全精确,因为它们以二进制形式存储有权或其他东西,但我总是想知道为什么十进制数数据类型不只是存储一个数字就像没有小数一样,所以做计算就像如果没有小数,则在之后添加.就像在这种情况下:

2.159 * 3.507 --> 2159 * 3507 = 7571613
  ^^^     ^^^
  123     456

6 decimals in total... 7571613 -> 7.571613
                        ^^^^^^
                        654321
Run Code Online (Sandbox Code Playgroud)

所以2.159*3.507 = 7.571613

为什么它不能像那样工作?

floating-point decimal-point

2
推荐指数
1
解决办法
2365
查看次数

咖喱和无故障的功能

咖喱

add::Int->Int->Int
add x y = x+y
Run Code Online (Sandbox Code Playgroud)

Uncurried

add1::(Int,Int)->Int
add1 (x,y)=x+y
Run Code Online (Sandbox Code Playgroud)

我有几个问题重新调整CurriedUncurried函数,考虑上面的函数,

问题1

在Uncurried函数输入参数是as (Int,Int),它是否与输入元组一致?我们怎么能区分那个?

问题2

关于无故障和咖喱功能有哪些优缺点?什么时候和为什么要使用?

haskell functional-programming

2
推荐指数
1
解决办法
2314
查看次数