我有一个带有很多 if/elseif 语句的函数。我正在寻找一种方法来改进此函数的代码,替换 IF/ELSEIF。我正在尝试使用字典,但我不确定这是否是最好的方法。提高可读性也很重要。
\nif lowestDim == "Campaign" || lowestDim == "Adgroup"\n if campaignType != "PERFORMANCE_MAX"\n drillThroughMap["DRILLLINK5"] = Dict(\n "filters" => lowestDim == "Campaign" ? Dict([\n SQLFilter("CAMPAIGN", "=", onlyCampaign), SQLFilter("SOURCE", "=", source)]) : Dict([\n SQLFilter("CAMPAIGN", "=", onlyCampaign), SQLFilter("SOURCE", "=", source), SQLFilter("ADGROUP", "=", adgroup)]),\n "drillTo" => demographicDashboard\n )\n end\n drillThroughMap["DRILLLINK10"] = Dict(\n "filters" => Dict(),\n "drillTo" => campaignComparisonDashboard\n )\nend\n\nif presetDateRange != "Last 12+ Months" && (lowestDim != "Keyword" ) && !(source == "google" && (campaignType == "SMART" || campaignType == "PERFORMANCE_MAX"))\n drillThroughMap["DRILLLINK6"] = Dict(\n "filters" => Dict([SQLFilter("CAMPAIGN_FROM_DIAGNOSIS", "=", lowestDim == "Campaign" ? campaignStr : onlyCampaign * " \xc2\xb7\xc2\xb7 " * source)]),\n "drillTo" => adgroupComparisonDashboard\n )\nend\n\nif presetDateRange != "Last 12+ Months" && lowestDim != "Campaign" && (campaignType == "SEARCH")\n drillThroughMap["DRILLLINK7"] = Dict(\n "filters" => Dict([SQLFilter("ADGROUP_FROM_DIAGNOSIS", "=", adgroup * " \xc2\xb7\xc2\xb7 " * onlyCampaign * " \xc2\xb7\xc2\xb7 " * source)]),\n "drillTo" => keywordComparisonDashboard\n )\nelseif presetDateRange != "Last 12+ Months" && lowestDim == "Campaign" && (campaignType == "SEARCH")\n drillThroughMap["DRILLLINK7"] = Dict(\n "filters" => Dict([SQLFilter("CAMPAIGN_FROM_DIAGNOSIS", "=", onlyCampaign * " \xc2\xb7\xc2\xb7 " * source)]),\n "drillTo" => keywordComparisonDashboard\n )\nend\nRun Code Online (Sandbox Code Playgroud)\n只是一段功能代码。
\n