2013-06-10 2 views
0
var questionList:List[Question]=null 
    questionSetQuestionQuestion=questionSetQuestionService.findQuestionSetQuestionByQuestionSetId(id) 


    // println(questionSetQuestionQuestion(0)) 


    for(x<-questionSetQuestionQuestion){ 
questionList=x.getQuestion() 
    } 

여기서 각 getQuestion() 값을 questionList에 추가하고 싶습니다.스칼라 목록에 반복 값 삽입하기

+3

그 변수 이름은 – Dylan

+0

죄송합니다 고통스럽게 긴하지만 이해하기 질문 어려운 찾을 수 있습니다. questionSetQuestionQuestion 유형에 대한 힌트를 주시겠습니까? –

답변

0

당신은 빈리스트로 정의하고 추가 할 필요에 그것을

var questionList:List[Question]=List[Question]() 
questionSetQuestionQuestion=questionSetQuestionService.findQuestionSetQuestionByQuestionSetId(id) 

for(x<-questionSetQuestionQuestion){ 
questionList=x.getQuestion() :: questionList 
} 

PS : 그가의 일반적인 사용에 대해 설명 : 나는 코 세라 (스칼라 함수 프로그래밍 과정)에 마틴 오더 스키에 의해 강의를 추천 할 것입니다 대부분의 데이터 구조

3

스칼라 세계에서 가능한 경우 변경 가능성을 피해야하므로 List var에 대한 루핑 및 prepending이 작동하지만 더 맛있는 옵션이 있습니다. 귀하의 경우에는 "이미 가지고있는 기존 컬렉션에서 새 컬렉션을 만들 수 있습니까?"라고 더 많이 생각할 것입니다. 당신이 시도 할 수있는 방법을 촬영 :

val newColl = for(x<-questionSetQuestionQuestion) 
    yield x.getQuestion() 

아니면 그냥이 같은 직접 map 기능을 사용할 수 있습니다

val newColl = questionSetQuestionQuestion.map(_.getQuestion)