我知道解释条件语句有多简单,比如
def sftp_walk(socket, remotepath):
remotepath = remotepath.replace('\\', '/')
path = remotepath
files = []
folders = []
for f in socket.listdir_attr(remotepath.replace('\\', '/')):
if S_ISDIR(f.st_mode):
folders.append(f.filename)
else:
files.append(f.filename)
print(path, folders, files)
yield path, folders, files
for folder in folders:
new_path = os.path.join(remotepath.replace('\\', '/'), folder)
for x in sftp_walk(socket, new_path):
yield x
def get_all(socket, remotepath, localpath):
remotepath = remotepath.replace('\\', '/')
socket.chdir(os.path.split(remotepath)[0])
parent = os.path.split(remotepath)[1]
try:
os.mkdir(localpath)
except:
pass
for walker in sftp_walk(socket, parent):
try:
os.mkdir(os.path.join(localpath, walker[0]).replace('\\', '/'))
except:
pass
for file in walker[2]:
socket.get(os.path.join(walker[0], file).replace('\\', '/'), os.path.join(localpath, walker[0], file).replace('\\', '/'))
但我想知道如何解释这样的陈述?
condition ? expr1 : expr2
无需解释这个长篇大论。我只需要知道当多个问号和冒号像这个例子一样使用时它意味着什么。
谢谢
答案 0 :(得分:4)
Javascript是右关联的,因此您可以“从右到左”解决三元组问题。
答案 1 :(得分:3)
永远不要这样做。永远。要添加泰勒的(正确的)答案,如果你无法抗拒警笛歌曲,那么使用缩进对事物进行分组是可取的(对于'优先'的某些定义)。
var foo = a ?
b:
c ?
d:
e;
如果b
是真实的,a
d
如果c
是真的,那么 更容易看到foo将是e
,或者tableView.delegate = self
否则。
答案 2 :(得分:-1)