代码之家  ›  专栏  ›  技术社区  ›  Grant Herman

函数编程函数cadence

  •  1
  • Grant Herman  · 技术社区  · 6 年前

    我有一个软件项目,我有一堆功能,检查一件事。代码如下所示:

    const isRed = color => color === 'red;;
    const isBlue = color => color === 'blue';
    
    function whichColour(color){
      if(isRed(color){
        return 'X'
      }
      
       if(isBlue(color){
        return 'Y'
      }
    
    }

    这只是一个例子,应用程序有很多这样的函数来检查一件事。我认为拥有所有这些函数,做一件事,是符合函数编程范式的。

    不过,最近我一直在想,最好这样做:

    const isColor = (color, targetColor) => color === targetColor;
    
    function whichColor(color){
      if(isColor(color, 'red'){
        return 'X'
      }
      if(isColor(color, 'blue')){
        return 'Y'
      }
    }

    我认为它们都是可读的,因为你可以看到所需的值,这将节省大量的空间,因为我确实有很多这样的小功能。但是,我不确定哪一个更好。

    让我知道你的想法。

    2 回复  |  直到 6 年前
        1
  •  2
  •   NiVeR    6 年前

    sameColor colorMatch .

        2
  •  1
  •   wang    6 年前
    const colors = {
        red: 'X',
        blue: 'Y',
        green: 'Z',
        // a lot of other colors
    }
    
    function whichColor(color) {
        return colors[color]
    }
    
    推荐文章