我想设置一组2-4个变量,它们的值取决于第5个变量。我可以通过一长串func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : NoticeListCell = tableView.dequeueReusableCell(withIdentifier: "noticeCell", for: indexPath) as! NoticeListCell
let notice = notList[indexPath.row]
cell.setValues(notice: notice)
return cell;
}
来做到这一点,我想知道是否有一个我不知道可以学习的技巧,更优雅地做到这一点?我对“C”还是很新。
例如:
if else
我打算在远离/*some code... x is read from stdin...*/
if (x == 1) {
a = 10;
b = 100;
}
else if (x == 2) {
a = 10;
b = 50;
c = 100;
}
else if (x == 3) {
a = 0;
b = 25;
c = 50;
d = 100;
}
/* and so on...*/
的函数中使用指针设置main()
,a
,b
来完成所有操作...但我省略了这是为了简单。
干杯,
w ^
答案 0 :(得分:0)
如果你觉得自己喜欢乱砍,你可以做这个奇特的伎俩:
typedef enum
{
CASE_1_ = 1,
CASE_2_,
CASE_3_
}states;
void caseA(int *a, int *b, int *c, int *d) {
*a = 10;
*b = 100;
}
typedef void (*fp)(int *, int *, int *, int *);
fp proccess[] = {[CASE_1_] = caseA, [CASE_3_] = caseB, [CASE_3_] = caseC};
您需要做的只是proccess[x]();
,而且您不需要任何switch
或if-else
语句。