嘿,希特勒

部署运行你感兴趣的模型镜像
switch case ,是复杂度很高的结构。
我发现很多人喜欢用switch的。
其实switch有很多时候,可以用数组来替代。
比如把 今天转换为的星期来表达,如周二,周三等。可以用数组的方法。
 private static string ChinaWeekDay(DayOfWeek DayOfWeek)
{
return string.Format("周{0}", "日,一,二,三,四,五,六".Split(',')[(int)DayOfWeek]);
}

数组本身作为一种基本的数据结构,本身就蕴含着分支在内,因此分支有时候可以转换为数组操作——尤其是在各个分支仅仅操作一个,或者一组相同数据的时候——从而让代码变得简洁。
作为对比,也可以看看switch的等价代码:
private static string ChinaWeekDay(DayOfWeek DayOfWeek)
{
switch (DayOfWeek)
{
case DayOfWeek.Sunday:
return "周日";
break;
case DayOfWeek.Monday:
return "周一";
break;
case DayOfWeek.Tuesday:
return "周二";
break;
case DayOfWeek.Wednesday:
return "周三";
break;
case DayOfWeek.Thursday:
return "周四";
break;
case DayOfWeek.Friday:
return "周五";
break;
case DayOfWeek.Saturday:
return "周六";
break;
}
return "";
}

后者的代码很多,但是看起来“整齐而雄壮”,看到这样的代码,我感觉如同检阅一队德国兵,他们整齐的对我致敬:”嘿,希特勒“。
是不是这样原因,让很多人喜欢用它呢?
不妨和你的代码做个新的见面
1. 查询switch,看看有多少
2. 逐次检视每个switch,看看是否就是操作或者返回同一个,或者同一组变量
3. 是否有更好的方法,比如数组方式?
补充:
format = "2010年3月5日 周?"
何必呢?一个数组搞定
要善用数据结构。
很多时候,数据结构可以更好的起到分支和循环的作用,并且更加好阅读。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在MATLAB中,希特勒矩阵也被称为Hadamard矩阵,是由正负一组成的方阵,满足特定的性质。对于给定的n值(如6、8和10),我们可以创建这些矩阵,然后使用雅可比迭代法(Jacobi method)和SOR (Successive Overrelaxation) 迭代法求解线性系统。 首先,让我们编写一个函数来生成Hadamard矩阵: ```matlab function H = hadamard_matrix(n) % Check if n is a multiple of 4 for Hadamard matrices if mod(n, 4) ~= 0 error('Hadamard matrix only exists for n = 4k'); end H = speye(n); % Initialize with identity matrix for i = 1:n/2 H(1:(2*i), 1:(2*i)) = H(1:(2*i), 1:(2*i)) .* [-1; ones(1, 2*(i-1))]; H((2*i+1):n, (2*i+1):n) = H((2*i+1):n, (2*i+1):n) .* [ones(1, 2*(i)); -1]; end end ``` 接下来,我们使用雅克比迭代法和SOR迭代法求解一个示例线性系统。这里假设有一个简单的Ax=b形式的问题,A即为Hadamard矩阵,b是一个向量。 ```matlab function results = compare_iterative_methods(n, w) A = hadamard_matrix(n); b = rand(n, 1); % Generate random right-hand side vector % Jacobi iteration x_jacobi = zeros(n, 1); options.jacobi.UseScaling = 'none'; % Disables scaling for comparison [x_jacobi, ~] = iterative_solver(A, b, 'jacobi', options); % SOR iteration with different relaxation parameters x_sor_w1 = zeros(n, 1); x_sor_omega1_25 = zeros(n, 1); x_sor_omega1_5 = zeros(n, 1); sor_options = struct('RelaxationFactor', w); [x_sor_w1, ~] = iterative_solver(A, b, 'sor', sor_options); [x_sor_omega1_25, ~] = iterative_solver(A, b, 'sor', sor_options(1:end-1) + struct('RelaxationFactor', 1-25)); [x_sor_omega1_5, ~] = iterative_solver(A, b, 'sor', sor_options(1:end-1) + struct('RelaxationFactor', 1.5)); % Store the results results = struct('Jacobi', x_jacobi, 'SOR_w1', x_sor_w1, 'SOR_omega1_25', x_sor_omega1_25, 'SOR_omega1_5', x_sor_omega1_5); end % Call the function and compare the results [n_list] = [6, 8, 10]; % List of n values results = cellfun(@(n) compare_iterative_methods(n, [1, 1-25, 1.5]), n_list, 'UniformOutput', false); ``` 在这个例子中,`iterative_solver`是一个假设存在的通用迭代函数,它接受矩阵A、向量b以及迭代方法作为输入,并返回解向量。你需要将这个函数替换为你实际使用的迭代算法实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值