帮助,在将Python脚本翻译为Scala的过程中

myt*_*mer 1 python scala

我正在尝试翻译:http://thinkstats.com/survey.py这个脚本.

所以这就是我现在正在翻译的内容(Python):

"""This file contains code for use with "Think Stats",
by Allen B. Downey, available from greenteapress.com

Copyright 2010 Allen B. Downey
License: GNU GPLv3 http://www.gnu.org/licenses/gpl.html
"""

import sys
import gzip
import os

class Record(object):
    """Represents a record."""

class Respondent(Record): 
    """Represents a respondent."""

class Pregnancy(Record):
    """Represents a pregnancy."""
Run Code Online (Sandbox Code Playgroud)

斯卡拉:

import sys.process._
import java.util.zip.GZIPInputStream
import java.io._

class Record[T](val obj: T)

class Respondent[T](val record: Record[T])

class Pregnancy[T](val record: Record[T])
Run Code Online (Sandbox Code Playgroud)

问题:我做class Respondentclass Pregnancy正确的吗?这些类的类型注释是否正确?逻辑是否正确?我刚刚读了类型参数化,所以我对此有点不确定,想看看我是否在正确的路径上.

感谢您的时间.

Kip*_*ros 5

我记得,你展示的Python语法是用于类扩展(继承).等效的Scala会是

/** Represents a record.
 */
class Record

/** Represents a respondent.
 */
class Respondent extends Record

/** Represents a pregnancy.
 */
class Pregnancy extends Record
Run Code Online (Sandbox Code Playgroud)

表单的Scala注释/** ... */将显示为ScalaDoc中的文档.

这里不需要类型参数化.它的主要用途是允许类接受或返回任意参数化类型的值.例如,List[Int]and List[String]分别是整数和字符串的列表.